home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / gnu-c / src / gcc-2.7.0-amiga / changelog.2 < prev    next >
Text File  |  1991-05-15  |  292KB  |  7,230 lines

  1. Thu Jan 31 00:33:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  2.  
  3.     * loop.c (scan_loop): Check each libcall for regs it uses
  4.     but does not mention in the equivalent value.
  5.     To move the libcall, we must have at most one such reg
  6.     and it must be moved as well.
  7.     (libcall_other_reg): New subroutine.
  8.     * rtlanal.c (record_excess_regs): New function.
  9.  
  10.     * tree.c (gcc_obstack_init): New function.
  11.     (init_obstacks, save_tree_context): Use that.
  12.     (OBSTACK_CHUNK_SIZE): New parameter.
  13.     * xm-next.h: New file.
  14.     * configure (m68k/next): Use that file.
  15.  
  16.     * flags.h (flag_no_common): Declare new flag to treat external defs
  17.     as ANSI specifies (i.e. not as common).
  18.     * toplev.c (flag_no_common, f_options): Support -fno-common.
  19.     * varasm.c (assemble_variable): Don't output a common if
  20.     flag_no_common is set.    Treat as if initialized to 0.
  21.  
  22.     * gcc.c (default_compilers): Define __ASSEMBLER__ for .S file.
  23.  
  24.     * tm-aix386.h (ASM_OUTPUT_LOCAL): Ok to use bss, since no shared libs.
  25.     (LINK_SPEC): Pass through all -K and -T options.
  26.     * xm-aix386.h (TRUE, FALSE): Undef if already def, to avoid warning.
  27.  
  28.     * tm-m68k.h (TARGET_68040, TARGET_68040_ONLY): New machine flags.
  29.     (TARGET_SWITCHES): Alternatives to set them.
  30.     * tm-next.h (TARGET_DEFAULT): Changed to 0407 for 68040.
  31.  
  32.     * out-m68k.h (standard_68881_constant_p):  Always return 0
  33.     for TARGET_68040 since fmovecr is no longer implemented in hardware.
  34.  
  35.     * m68k.md (ftruncdf2, ftruncsf2): Don't emit fintrz for
  36.     TARGET_68040, since it is no longer implemented in hardware.
  37.     (muldf3): Don't use fscale on 68040, since not implemented in hardware.
  38.  
  39.     * toplev.c (optimize): Now stores specified optimization level.
  40.     (main): Keep the largest optimization level specified.
  41.     Handle any integer.
  42.  
  43.     * c-decl.c (pushdecl): Don't make an extern global for -traditional
  44.     if it uses any local types.
  45.  
  46.     * tm-sun386i.h (PCC_BITFFIELD_TYPE_MATTERS): Use 1 as value.
  47.  
  48. Wed Jan 30 12:41:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  49.  
  50.     * fixincludes (sys/systypes.h): Edit this to handle _SIZE_T, etc.
  51.  
  52.     * function.c (put_var_into_stack): Allocate var ref chain link
  53.     while in the proper function's obstack.
  54.  
  55.     * fold-const.c (const_binop): Don't crash for real/0 if have infinity.
  56.  
  57.     * flow.c (mark_set_1): Don't make log link for hard reg in asm insn.
  58.  
  59. Wed Jan 30 07:45:33 1991  Tom Wood  (wood at dg-rtp.dg.com)
  60.  
  61.     * sched.c (schedule_block): Indicate what insns constitute each
  62.     basic block.
  63.  
  64. Tue Jan 29 12:35:42 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  65.  
  66.     * Makefile.in (gnulib1.*, gnulib2.*): Declare them phony targets.
  67.  
  68.     * print-tree.c (print_node): Print message if TREE_PERMANENT is wrong.
  69.     * tree.c (object_permanent_p): New function.
  70.  
  71.     * print-tree.c (print_node): Remove DECL_LANG_FLAG_10.
  72.  
  73. Tue Jan 29 10:07:48 1991  Tom Wood  (wood at dg-rtp.dg.com)
  74.  
  75.     * m88k.md (minus/xor/and, neg/ne/compare/and): Delete these.  This
  76.     should be done by combine.
  77.     (compare operator): Eliminate except when a SET_SRC.
  78.     * tm-m88k.h (OPTIMIZATION_OPTIONS): -fomit-frame-pointer is a
  79.     default optimization.
  80.  
  81. Mon Jan 28 12:52:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  82.  
  83.     * tree.h (DECL_VIRTUAL_P): Renamed from TREE_VIRTUAL.
  84.     (struct tree_common): Eliminate virtual_flag.
  85.     (struct tree_decl): Add virtual_flag.
  86.  
  87.     * Makefile.in (enquire.o): Pass -DNO_STDDEF.
  88.  
  89.     * m68k.md (tablejump): Now have a define_expand that does
  90.     different things depending on CASE_VECTOR_PC_RELATIVE,
  91.     and a separate define_insn for each case.
  92.  
  93.     * function.h (outer_function_chain): Declare the variable.
  94.  
  95.     * tree.c (debug_obstack): Fix typos.
  96.     * tree.h (struct tree_common): Fix typo.
  97.  
  98.     * Makefile.in (GNULIB1_TARGET, GNULIB2_TARGET): Variables deleted.
  99.     (gnulib): Depend on gnulib1.target and gnulib2.target explicitly.
  100.  
  101.     * dbxout.c (dbxout_type): Use DECL_VIRTUAL_P, not TREE_VIRTUAL.
  102.  
  103.     * cplus-tree.h (TREE_PRIVATE, TREE_PROTECTED): #if 0.
  104.  
  105.     * cexp.y (keywords): Cast names for parens to U_CHAR *.
  106.  
  107.     * gcc.c (process_command): Fix typo setting switches[n_switches].arg.
  108.  
  109.     * loop.c (loop_reg_used_before_p): Check insns before INSN, not after.
  110.  
  111.     * objc-actions.c (objc_finish): Renamed from lang_finish.
  112.     * objc-parse.y (program): Call objc_finish at the end.
  113.  
  114.     * Changes from Matthew Self (mself@next.com):
  115.  
  116.     * objc-parse.y:     Since objc-parse.y was so out of date with
  117.     respect to c-parse.y, I started over with c-parse.y and
  118.     reintegrated the Objective-C modifications.  Now that
  119.     Objective-C is working I hope that objc-parse.y will be kept
  120.     more up to date....  I did not re-integrate the lexer since I
  121.     don't have gperf working.  I simply cut and pasted what
  122.     Stallman had in objc-parse.y.  Someone with access to gperf
  123.     should re-generate this stuff.
  124.  
  125.     * objc-actions.c (comp_method_with_proto,
  126.     comp_proto_with_proto):     Stallman's change to use the
  127.     functions end_temporary_allocation and
  128.     resume_temporary_allocation is incorrect, since it always
  129.     leaves allocation temporary, whether it was before or not. 
  130.  
  131.     Perhaps the push and pop functions would do the trick....
  132.  
  133.     * objc-actions.c (get_arg_type_list):  Use new function
  134.     groktypename_in_parm_context.
  135.  
  136.     * objc-actions.c (_OBJC_SELECTOR_REFERENCES_decl,
  137.     _OBJC_SELECTOR_REFERENCES_id):    Removed.
  138.  
  139.     * objc-actions.c (synth_module_prologue):  Eliminated code to
  140.     forward declare the selector references array.
  141.  
  142.     * objc-actions.c (init_objc_symtab):  Eliminated code to
  143.     initialize "refs" field in objc_symtab structure (which is
  144.     now vestigial).
  145.  
  146.     * objc-actions.c (build_selector_translation_table): Rewrote.
  147.  
  148.     * objc-actions.c (build_selector_reference):  New routine.
  149.  
  150.     * objc-actions.c (build_message_expr, build_selector_expr):
  151.     Use new routine.
  152.  
  153.     * config/tm-next.h (GO_IF_INDEXABLE_BASE):  Don't use pc
  154.     relative addressing for LABEL_REF's.  Since branch tables are
  155.     in the const section, we treat LABEL_REF's like SYMBOL_REF's
  156.     here.  Otherwise invalid addresses were being generated.
  157.  
  158.     * config/tm-next.h (CASE_VECTOR_PC_RELATIVE, CASE_VECTOR_MODE):
  159.     Use absolute branch tables rather than relative ones.
  160.  
  161.     * config/tm-next.h (ASM_OUTPUT_MAIN_SOURCE_FILE_END):  Output
  162.     an N_SO symbol with no name to mark the end of the module.
  163.     This is needed to support scattered loading on the NeXT.
  164.  
  165.     * config/out-next.c (handle_pragma):  Call to xrealloc had wrong args.
  166.  
  167.     * configure: Entry for NeXT must set out_file to out-next.c.
  168.  
  169.     * config/out-next.c:  Typo: "flags" -> "flags.h"
  170.  
  171.     * config/tm-next.h (LIB_SPEC):    Brought up-to-date.  There
  172.     are probably more changes needed here.
  173.  
  174.     * c-decl.c (pushdecl_top_level):  New function.     This was
  175.     copied from an older version of g++.
  176.  
  177.     * c-decl.c (init_decl_processing): Make alloca first arg sizetype.
  178.  
  179.     * c-decl.c (groktypename_in_parm_context): New function.
  180.  
  181. Mon Jan 28 07:07:01 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  182.  
  183.     * loop.c (loop_reg_used_before_p): Don't use INSN_LUID since INSN
  184.     might have been made by loop.c for an outer loop.
  185.  
  186.     * loop.c (move_movables, strength_reduce): Replace register references
  187.     in REG_NOTES as well as PATTERN.
  188.  
  189.     * loop.c (strength_reduce): Call maybe_eliminate_biv twice, not 
  190.     three times.
  191.     (maybe_eliminate_biv): Don't abort if elimination fails even though
  192.     we thought it wouldn't.     This can happen if certain insn patterns 
  193.     aren't valid.
  194.     (maybe_eliminate_biv_1): Ensure that we do not change the insn at
  195.     all if all the required changes can't be done.
  196.  
  197. Sun Jan 27 21:26:29 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  198.  
  199.     * Makefile.in: Rename config-dir back to config.
  200.  
  201. Sat Jan 26 17:48:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  202.  
  203.     * objc-parse.y (program): Call objc_finish.
  204.     * objc-actions.c (objc_finish): Renamed from lang_finish.
  205.  
  206.     * objc-actions.c, objc-parse.y: New version from NeXT.
  207.  
  208. Sat Jan 26 17:37:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  209.  
  210.     * expr.c (expand_expr, case COND_EXPR): Disable special-case of
  211.     A ? B : C when B and C are simple.  This is now done better by jump.
  212.  
  213. Sat Jan 26 13:16:58 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  214.  
  215.     * tree.h (TREE_PRIVATE, TREE_PROTECTED, TREE_VIRTUAL): New macros.
  216.     (struct tree_common): New flag fields.
  217.     * dbxout.c (dbxout_type): Get rid of conditional; can always use these.
  218.  
  219.     * cccp.c (lookup_import): Do return -2 if file found.
  220.     (main): Handle `.m' suffix like `.S'.
  221.  
  222.     * configure (m68k/next): Use out-next.c.
  223.  
  224.     * WORD_SWITCH_TAKES_ARG and SWITCH_TAKES_ARG now give # of args.
  225.     * gcc.c (struct switchstr): New field `args' replaces `part2'.
  226.     (process_command): Record all the args a switch has.
  227.     (give_switch): Pass all the strings in `args'.
  228.  
  229.     * tree.h (struct tree_common): Normally make `code' an enum tree_code.
  230.  
  231.     * m68k.md (tablejump): New pattern.
  232.     (casesi, etc.): Deleted.
  233.  
  234.     * tree.c (debug_obstack): New function.
  235.  
  236.     * toplev.c (compile_file): Call dbxout_finish near the end.
  237.     * dbxout.c (dbxout_finish): New function.
  238.  
  239.     * print-tree.c (print_node): Always print ERROR_MARK node briefly. 
  240.  
  241.     * objc-actions.h (METHOD_ENCODING, CLASS_CATEGORY_LIST): New macros.
  242.  
  243.     * gcc.c (execute): Make fatal signal message clearer.
  244.     (default_compilers): For .m file, define __OBJC__,
  245.     and pass -lang-objc and -gen-decls to cc1.
  246.  
  247.     * dwarfout.c: Include output.h.
  248.     (current_function_decl, asm_out_file): Explicit extern decls deleted.
  249.     (abort, fatal): Explicit extern decls deleted.
  250.     (NO_RETURN): Definition deleted.
  251.     (named_labels): Don't declare it.
  252.     (output_symbol): Don't use it.
  253.     (MAXPATHLEN): Don't define this.  Don't include sys/param.h.
  254.     (output_source_file_die): Avoid limit on file name size.
  255.     (output_symbols_for_stmt): Deleted.
  256.     (output_symbols_for_block): Adapt to using BLOCK, not LET_STMT.
  257.  
  258.     * configure: Renamed from `config'.
  259.     * config: Directory renamed back from config-dir.
  260.  
  261. Sat Jan 26 1990     Ron Guilmette (rfg at ncd.com)
  262.  
  263.     * README.DWARF: updated to reflect changes to dwarfout.c, the
  264.     inclusion of dwarf.h (and its changes) and the fact that the
  265.     DWARF support is no longer directly tied to the DG versions of
  266.     GCC.
  267.  
  268.     * dwarfout.c: included a patch (provided by Ray Essick) to allow
  269.     dwarfout.c to properly get a value for MAXPATHLEN even on (old)
  270.     System V.3 systems.
  271.  
  272.     * dwarfout.c: added support for long long types (as suggested by
  273.     Ray Essick).
  274.  
  275.     * dwarfout.c: added support for the AT_comp_dir attribute.  Also,
  276.     as part of this change, the name of the compilation directory is
  277.     no longer placed into in the .sources section.
  278.  
  279.     * dwarfout.c: added support for the AT_addr_ranges attribute.
  280.  
  281.     * dwarfout.c: added support for the AT_prototyped attribute.
  282.  
  283.     * dwarfout.c: added support for the AT_src_info attribute. Also,
  284.     as part of this change, there is no longer a "special" entry
  285.     at the start of the .srcinfo section for each compilation unit,
  286.     and the contents of the "special" final entry in the .srcinfo
  287.     section have changed (to { -1, -1 }).
  288.  
  289.     * dwarfout.c: modified to allow additional GNU DWARF extensions
  290.     to be generated whenever the corresponding extended attribute
  291.     codes are defined (presumably within a modified dwarf.h file).
  292.  
  293.     * dwarfout.c: use the section names .srcinfo and .sources rather
  294.     than .finfo and .files.     The additional specificity is warranted
  295.     because the DWARF information may someday include information
  296.     about object files as well as source files.
  297.  
  298.     * dwarfout.c: fixed a bug where a type attribute was being generated
  299.     for functions and function types even when the return type was
  300.     void.  "Standard" dwarf says that if the return type for a function
  301.     or function type is void then no type attribute should be generated
  302.     for the corresponding DIE.
  303.  
  304. Sat Jan 26 04:22:08 1991  Michael Tiemann  (tiemann at cygnus.com)
  305.  
  306.     * cplus-lex.c (interface_strcmp): Handle String.String.Map.cc and
  307.     friends.
  308.  
  309.     * cplus-typeck.c (build_unary_op): Merge change to generate better
  310.     code from simple cast expression.
  311.  
  312. Fri Jan 25 10:06:28 1991  Michael Tiemann  (tiemann at cygnus.com)
  313.  
  314.     * cplus-decl.c (pushtag): Don't call `pushdecl' if the type's name
  315.     is anonymous, lest we recurse ad infinitum.
  316.  
  317. Thu Jan 24 23:56:55 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  318.  
  319.     * optabs.c (expand_binop, expand_unop): Word at a time only for ints.
  320.  
  321. Thu Jan 24 09:40:37 1991  Tom Wood  (wood at dg-rtp.dg.com)
  322.  
  323.     * sdbout.c (sdbout_symbol): Apply changes in dbxout.c to deal with
  324.     SUBREG.     Don't emit a symbolic definition for variables that can't
  325.     be represented.
  326.  
  327. Thu Jan 24 21:18:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  328.  
  329.     * config: Conditional for setting $os was backward.
  330.     Also mention name of make-var file if one exists.
  331.  
  332.     * out-i386.c: Delete a large piece of accidental insertion.
  333.  
  334.     * dwarfout.c: Don't include c-tree.h or cplus-tree.h.
  335.     (INT_TYPE_SIZE, etc.): Define them if not overridden.
  336.     (fundamental_type_code): Distinguish types by TYPE_PRECISION.
  337.     But also check for the built-in C type names.
  338.  
  339. Thu Jan 24 15:23:17 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  340.  
  341.     * gcc.c (default_compilers): Pass all args starting with "O" to 
  342.     cc1 so that -O2 is passed along.
  343.  
  344. Thu Jan 24 13:10:27 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  345.  
  346.     * stmt.c (expand_expr_stmt): Don't warn for any casts to void.
  347.  
  348.     * config: Fix typos setting shell vars.
  349.     Rename config to config-dir.
  350.     Insert missing \ in case for delta.
  351.  
  352. Wed Jan 23 16:31:27 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  353.  
  354.     * emit-rtl.c (emit_jump_insn_{before,after}): Allow PATTERN to be
  355.     a SEQUENCE.
  356.  
  357.     * loop.c (check_dbra_loop): Use emit_jump_insn_before when writing 
  358.     out compare and jump sequence, not emit_insn_before, to ensure that
  359.     if we only write one insn  that it is a JUMP_INSN.
  360.  
  361.     * toplev.c (flag_rerun_cse_after_loop): New: -frerun-cse-after-loop.
  362.     (rest_of_compilation): Rerun cse after loop if desired.
  363.     (main): Add support for -O2.
  364.     Prescan args for -O and -O2 to set default values for many -f options.
  365.     Add call to new macro OPTIMIZATION_OPTIONS.
  366.     Save status of -version until all args have been processed; then
  367.     write out the info.
  368.     (print_single_switch): New function.
  369.     (print_switch_values): Renamed from print_target_switch_defaults.
  370.     Now prints out currently enabled -f, -m, and -W switches.  Calls
  371.     print_single_switch to write out switch and handle long lines.
  372.  
  373.     * rtl.def (SUBREG): Change rtx class from 'o' to 'x'.
  374.  
  375.     * cse.c (find_comparison_args): Ignore hash table entry if not valid.
  376.  
  377. Wed Jan 23 00:12:24 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  378.  
  379.     * config: File renamed from config.gcc.
  380.     Allow abbreviations for +-options.
  381.     Allow config HOST TARGET.
  382.     Support +gas and +nfp as separate options.
  383.     Rename all the machine alternatives to general scheme:
  384.     cpu/company-system.  Allow abbreviations for cpu/company pairs.
  385.     * config-dir: Dir renamed from config.
  386.  
  387.     * Makefile.in (install-dir): Create bindir here.
  388.  
  389.     * cccp.c (main): Delete duplicat p++ left in last change.
  390.  
  391.     * Makefile.in (GNULIB1, GNULIB1_TARGET): Renamed from GNULIB*.
  392.     (gnulib1.portable, gnulib1.target): Renamed from gnulib.*.
  393.     They now make a file named gnulib1, from gnulib1.c.
  394.     (LIB1FUNCS, LIB1FUNCS_EXTRA): Renamed from LIBFUNCS*.
  395.     (for-bootstrap, rest.encap): Depend on gnulib, not GNULIB2_TARGET.
  396.     (stamp-gnulib2): This file is no longer used.
  397.     (gnulib2.portable): Old stamp-gnulib2 rule renamed to this.
  398.     Now create a file named gnulib2, from gnulib2.c alone.
  399.     (gnulib): New target, combines gnulib1 and gnulib2 into gnulib.
  400.     (mostlyclean): Delete additional temporary files.
  401.     No need to avoid deleting stamp-gnulib2.
  402.     (clean): Delete gnulib1 and gnulib2, but not stamp-gnulib2.
  403.     (realclean): No need to delete gnulib here.
  404.     (install-gnulib): Changed dependencies.
  405.     * gnulib1.c: File gnulib.c renamed.
  406.  
  407.     * Makefile.in (install-dir): Create bindir here.
  408.  
  409.     * cccp.c (main): Delete duplicat p++ left in last change.
  410.  
  411. Sun Jan 20 14:00:16 1991  Michael Tiemann  (tiemann at cygnus.com)
  412.  
  413.     * cplus-class.c (finish_struct): Conditionalize EMPTY_FIELD_BOUNDARY
  414.     on whether or not it is defined.  Similarly for    PCC_BIT_FIELD_MATTERS. 
  415.  
  416. Wed Jan 16 18:56:30 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  417.  
  418.     * cse.c (fold_rtx): When folding dispatch table, stay inside bounds.
  419.  
  420. Wed Jan 16 08:11:48 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  421.  
  422.     * reload.c (find_reloads_toplev): Fix typo in recent change.
  423.  
  424.     * reload1.c (eliminate_regs): If we have a non-paradoxical
  425.     (subreg (pseudo)) and the pseudo has an equivalent memory
  426.     location, replace the SUBREG because find_reloads may do it.
  427.  
  428. Tue Jan 15 01:41:28 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  429.  
  430.     * loop.c (scan_loop): Condition for movability was wrong.
  431.     A reg that isn't necessarily set may be unsafe
  432.     even if used only inside the loop.
  433.     However, a reg used only in the same basic block after the set is safe.
  434.     So is a reg that isn't a user-level variable.
  435.  
  436.     * loop.c (loop_optimize): Reverse order of scanning loops.
  437.  
  438.     * loop.c (scan_loop): After skipping the insns of a libcall sequence,
  439.     ignore notes when searching back to find the last insn of the seq.
  440.  
  441.     * cccp.c (main): Use envvar GCC_EXEC_PATH to specify translation
  442.     of prefixe in default include dirs.
  443.  
  444.     * cccp.c (main): Do path_includes after explicit options.
  445.  
  446.     * combine.c (try_distrib): Don't push + thru negative count shifts.
  447.  
  448. Mon Jan 14 09:40:28 1991  Ken Raeburn  (raeburn at watch.com)
  449.  
  450.     * cplus-lex.c (yylex): Even in `extern "C"', the keywords are the
  451.     same.
  452.  
  453.     * cplus-lex.c (input_from_saved_text): New function.  Set string
  454.     source for FILE pointer.
  455.     (yylex, do_pending_inlines): Call it.
  456.  
  457.     * cplus-parse.y (stmts, stmt): Type is now `tree'.  Some actions
  458.     fixed to return it.
  459.  
  460.     * cplus-lex.c (reinit_parse_for_block): New function, with most of
  461.     the guts of reinit_parse_for_method.  Magic argument IS_TEMPLATE
  462.     chooses a set of error messages.
  463.     (reinit_parse_for_method): Call it.
  464.     cplus-template.c (reinit_parse_for_template): New function, also
  465.     calls reinit_parse_for_block.
  466.  
  467. Mon Jan 14 07:20:36 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  468.  
  469.     * loop.c (skip_consec_insns, move_movables, strength_reduce): Don't
  470.     call find_reg_note on a NOTE.
  471.  
  472. Sun Jan 13 15:45:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  473.  
  474.     * cccp.c: Separate namespace for assertions.  Don't expand macros
  475.     inside assertions in #if.  Allow arbitrary token sequences.
  476.     (rescan): Special handling after `#' if assertions_flag.
  477.     (expand_to_temp_buffer): New arg sets assertions_flag. Callers changed.
  478.     (eval_if_expression): Pass 1 for that arg.
  479.     (skip_paren_group): New function.
  480.     (assertion_hashtab, ASSERTION_HASHSIZE, ASSERTION_HASHNODE): New.
  481.     (assertion_install, assertion_lookup, delete_assertion): New functions.
  482.     (T_ASSERTION): Deleted.
  483.     (tokenlist_list): Renamed from arglist_list.
  484.     (read_token_list): Renamed from read_keyword_list.  Much changed.
  485.     Copy the strings into the heap.
  486.     (free_token_list): Renamed from free_keyword_list.  Free the strings.
  487.     (do_assert, do_unassert): Considerably changed.
  488.     (check_assertion): Somewhat changed.
  489.     (check_macro_name): Extra arg contributes to error message.
  490.     * cexp.y (yylex): Parse everything as a name if keyword_parsing.
  491.     (rule for assertions): Set, then clear, keyword_parsing.
  492.     (keywords): Allow empty sequence.  Allow nested parens.
  493.  
  494. Sat Jan 12 12:18:00 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  495.  
  496.     * c-typeck.c (build_unary_op): Make better code for simple casts.
  497.  
  498.     * reload.c (find_reloads): Computing reload_when_needed, don't neglect
  499.     operands that don't have output reloads.
  500.  
  501.     * cse.c (refers_to_mem_p): At check_addr, handle PLUS inside CONST.
  502.  
  503. Sat Jan 12 06:30:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  504.  
  505.     * reorg.c (steal_delay_list_from_*): Add missing argument to calls to
  506.     insn_sets_resource_p.
  507.     (fill_eager_delay_slots, relax_delay_slots): Add missing argument
  508.     to calls to mostly_true_jump.
  509.     (relax_delay_slots): Correctly handle case where we can't invert jump.
  510.  
  511.     * reload.c (find_reloads_toplev): If we have a SUBREG of a
  512.     pseudo that resides in memory and the address is not offsettable,
  513.     substitute for the pseudo now so we can generate a reload for the
  514.     address.
  515.  
  516. Fri Jan 11 14:39:09 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  517.  
  518.     * tm-next.h (LIB_SPEC, STARTFILE_SPEC): Don't support -p.
  519.  
  520. Thu Jan 10 12:26:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  521.  
  522.     * tm-sun2.h (CC1_SPEC): Define to ignore -sun2 and -target.
  523.     (WORD_SWITCH_TAKES_ARG): Define to recognize -target.
  524.     (LIB_SPEC): Define; handle -a.
  525.     * tm-sun2os4.h: New file.
  526.     * tm-m68k.h (TARGET_SWITCHES): Handle -msky and -mnosky.
  527.     (TARGET_SKY): New macro.
  528.  
  529.     * tm-next.h (LIB_SPEC): Use -lsys_s, not -lc.
  530.  
  531.     * c-parse.y (yylex): Fix typo.
  532.  
  533.     * genoutput.c (output_prologue): Make insn-output.c use insn-codes.h.
  534.     * Makefile.in (insn-output.o): Depend on insn-codes.h.
  535.  
  536.     * Makefile.in (install-headers): Save $(libsubdir) before cd.
  537.  
  538.     * Makefile.in (gnulib): Depend on config.status.
  539.  
  540.     * gnulib2.c (__umulsidi3): Use #else around inline function.
  541.     Use __-style names for all machines.
  542.  
  543. Wed Jan     9 17:06:18 1991  Michael Tiemann  (tiemann at cygnus.com)
  544.  
  545.     * out-sparc.c (various places): Change \; to \n\t in printf
  546.     strings.
  547.  
  548.     * sparc.md: Change PIC initialization pattern to recognize pattern
  549.     that doesn't involve a clobber.
  550.     * out-sparc.c: Rest of change is here, where PIC initialization is
  551.     emitted.
  552.  
  553.     * cse.c (simplify_unary_operation, simplify_binary_operation):
  554.     Correctly adjust VAL for bits outside MODE.
  555.  
  556. Wed Jan     9 15:45:26 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  557.  
  558.     * flow.c (libcall_dead_p): Handle a CALL in a PARALLEL.
  559.  
  560. Tue Jan     8 13:35:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  561.  
  562.     * expmed.c (emit_store_flag): Correct UNSIGNEDP value passed to
  563.     convert_to_mode and expand_unop.
  564.  
  565. Mon Jan     7 11:56:31 1991  Michael Tiemann  (tiemann at cygnus.com)
  566.  
  567.     * gplus.gperf: New keywords for templates and other extensions.
  568.  
  569.     * cplus-lex.c: Incorprate new gperf code.
  570.  
  571.     * cplus-class.c (resolve_scope_to_name): New function.
  572.     (build_scoped_method_call): Call `resolve_scope_to_name' instead of
  573.     handling by itself.
  574.     * cplus-decl.c (pushdecl_class_level): Give forward declaration.
  575.     (lookup_nested_type): New function.
  576.     (pushtag,lookup_tag,xref_tag): Handle nested classes.
  577.     (finish_function): Add comment about obscure argument passing
  578.     convention for static method calls (at the call site).    Also, don't
  579.     call operator delete with NULL pointer.     Call it with
  580.     `current_class_decl' instead.
  581.     (globalize_nested_type): New function.    Used when we learn that a
  582.     type which initially appeared to be nested should be defined in the
  583.     global scope instead.
  584.     (grokdeclarator): Call `globalize_nested_type' when grokking an
  585.     as-yet undefined class type.
  586.     * cplus-dem.c: Updated to handle qualified (i.e. nested) types.
  587.     This means handling the new letter `Q' in mangled names.
  588.     * cplus-init.c (build_member_call): Handle nested classes using
  589.     `resolve_scope_to_name' instead of handling itself.
  590.     * cplus-lex.c (typename_scope_in_progress): New static variable to
  591.     allow the lexer to figure out what are nested class typenames,
  592.     scoped member references, etc., without getting the parser too
  593.     involved.
  594.     (yylex): Recognize SCOPED_TYPENAME and TYPENAME_SCOPE tokens.
  595.     Also, recognize '<' and '>' separately from ARITHCOMPARE so we can
  596.     implement templates.
  597.     No longer recognizes (X::*) or (X::&) as single tokens.
  598.     * cplus-method.c (build_overload_nested_name): New function to build
  599.     internal names for nested typenames.
  600.     * cplus-parse.y: Handle parameterized type syntax (more or less).
  601.     (dummy_decl): Gone!
  602.     Nested types are now handled.
  603.     * cplus-tree.h (DECL_UNDEFINED_FRIENDS): Moved out of DECL_CONTEXT
  604.     slot of TYPE_DECLs.  DECL_CONTEXT of typename is now the enclosing
  605.     type for nested types.
  606.     (DECL_NESTED_TYPENAME): An identifier pointer that makes the name of
  607.     the type unique for the compilation.
  608.     (IDENTIFIER_*): When initializing, call `perm_calloc', not
  609.     permalloc, since non-zero values actually mean something,
  610.     and we don't guarantee to initialize everything in one go.
  611.     * tree.c (perm_calloc): New function.
  612.     * cplus-typeck.c (default_conversion): Don't defaultly convert a
  613.     naked METHOD_REF such that it becomes a virtual function table
  614.     index.    Only let this happen if user requests it with `&'.
  615.  
  616.     * Makefile.in: Handle new source file cplus-template.c.
  617.  
  618. Mon Jan     7 15:03:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  619.  
  620.     * c-typeck.c (process_init_constructor): Error if values
  621.     provided for an array of empty elements.
  622.  
  623.     * out-i386.c (fp_top_dead_p1): Follow jump only if optimizing.
  624.     (fp_call_internal): Discard result if unused.  Use fp_top_dead_p1.
  625.  
  626.     * cse.c (cse_insn): In special case for (set REG0 REG1),
  627.     change any REG_EQUIV notes to REG_EQUAL.
  628.  
  629.     * tm-sun386i.h (PCC_BITFIELD_TYPE_MATTERS): Define it.
  630.  
  631.     * tm-att386.h (ASM_OUTPUT_LOCAL): Change back to data section.
  632.  
  633.     * genrecog.c (write_tree_1): Typo in printf string.
  634.  
  635.     * flow.c (libcall_dead_p): New arguments NOTE and INSN.
  636.     Now test that the hard return reg in the call is dead.
  637.     Callers changed.
  638.  
  639. Mon Jan     7 12:27:07 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  640.  
  641.     * recog.c (cancel_changes): Cancel changes in opposite order we made
  642.     them.
  643.  
  644.     * integrate.c (subst_constants): Only commute operands if op0 is const.
  645.  
  646.     * rtl.def (INLINE_HEADER): Add new integer field.
  647.     * rtl.h (POPS_ARGS): New macro for place to save
  648.     current_function_pops_args.
  649.     (FUNCTION_FLAG_POPS_ARGS): Deleted; no longer a single bit.
  650.     * emit-rtl.c (gen_inline_header_rtx): Add new arg for "pops args".
  651.     * integrate.c (initialize_for_inline, output_inline_function):
  652.     Correctly save and restore current_function_pops_args.
  653.  
  654. Sun Jan     6 14:10:44 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  655.  
  656.     * rtl.h (ASM_OPERANDS_INPUT_LENGTH): New macro.
  657.     * reload1.c (eliminate_regs): Use ASM_OPERANDS_... macros.
  658.     * recog.c (asm_noperands, decode_asm_operands): Likewise.
  659.  
  660.     * rtl.def (IF_THEN_ELSE): Set class to '3'.
  661.  
  662.     * cse.c (simplify_{unary,binary,ternary}_operation): New functions,
  663.     from fold_rtx.
  664.     (fold_rtx): Call these function to do the bulk of the work.
  665.     Use GET_RTX_CLASS to find commutative and comparison operations.
  666.     Swap folded_arg[01] when commuting operands.
  667.     * rtl.h: Define new functions.
  668.     * integrate.c (try_constants): Replace constant folding code with
  669.     calls to new functions above.
  670.     In commutative operations, put constants last.
  671.     
  672.     * genemit.c (struct clobber_pat): New data structure.
  673.     (gen_insn): If pattern ends with a group of CLOBBERs of hard
  674.     registers, store this information in a struct clobber_pat.
  675.     (output_add_clobbers): New function.
  676.     (main): Call it to write code to add CLOBBERs.
  677.     * genrecog.c (struct decision): Add new field num_clobbers_to_add.
  678.     (make_insn_sequence): If pattern ends with a group of CLOBBERs,
  679.     set up to recognize it without the CLOBBERs but to indicate the
  680.     number of CLOBBERs omitted.
  681.     (add_to_sequence): Initialize num_clobbers_to_add.
  682.     Remove unnecessary conditionalization on STORE_FLAG_VALUE.
  683.     (break_out_subroutines, write_subroutine, write_tree): Remove
  684.     RETURN_PREFIX parameter; TYPE is sufficient.
  685.     (write_subroutine): Add extra parameter for recog_* functions.
  686.     (write_tree_1): Pass TYPE instead of string for return.
  687.     Write out code to return number of CLOBBERs needed.
  688.     (write_tree): Add new parameter to recog_*.
  689.     (main): Add new parameter to recog.
  690.     Don't pass return string to break_out_subroutines and write_tree.
  691.     * recog.c (recog_memoized): Pass extra (0) parameter to recog.
  692.     * combine.c (recog_for_combine): New function.
  693.     (try_combine, simplify_and_cc0, try_distrib): Use it instead of recog.
  694.     (reg_dead_at_p, reg_dead_at_p_1): New functions.
  695.  
  696.     * flow.c (mark_set_1): Count in reg_n_sets when a part of a register
  697.     is modified.
  698.     Update SIGNIFICANT correctly when subreg_p and multiple hard regs.
  699.     Compute reg_n_sets for hard registers.
  700.  
  701. Sun Jan     6 13:41:49 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  702.  
  703.     * function.c (locate_and_pad_parm): Do REG_PARM_STACK_SPACE just once.
  704.  
  705.     * Changes by wilson@cygnus.com.
  706.     * calls.c (expand_call): Test value of REG_PARM_STACK_SPACE instead
  707.     of assuming that it will always be greater than zero.
  708.     * function.c (assign_parms): Same as above.  Also, correct
  709.     calculation of STACK_BYTES.
  710.  
  711.     * reload1.c (reload_reg_free_p): Old input reload blocks input_addr.
  712.  
  713. Sat Jan     5 18:32:15 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  714.  
  715.     * Makefile.in (mostlyclean): New name for old `clean'.
  716.     (clean): Deletes gnulib also.
  717.     (cleanconfig): Need not delete gnulib here.
  718.  
  719.     * reload.c (push_reload): Don't use dying reg unless operand fits.
  720.  
  721.     * c-parse.y (yylex): Hex and octal constants now traditionally signed.
  722.  
  723. Sat Jan     5 18:03:50 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  724.  
  725.     * regclass.c (regclass): reg_n_sets is one per set.  It does not
  726.     take into account loop_depth.  So don't adjust by loop_depth here.
  727.  
  728. Fri Jan     4 13:18:07 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  729.  
  730.     * function.c (put_var_into_stack): Don't mung virtual reg.
  731.     (fix_lexical_addr): Accept the virtual arg pointer.
  732.     * function.h (struct var_refs_queue): New structure.
  733.     (struct function): Use that for the pending var refs queue.
  734.  
  735.     * print-tree.c (print_node): Nicer format for rtl of decls.
  736.  
  737.     * c-decl.c (push_c_function_context, pop_c_function_context):
  738.     No need to deal with current_function_decl.
  739.  
  740.     * c-parse.y (nested_function): Delete spurious nonterminal.
  741.  
  742. Fri Jan     4 12:13:14 1991  Michael Tiemann  (tiemann at cygnus.com)
  743.  
  744.     * cplus-class.c (modify_vtable_entries): In case we are modifying
  745.     the main vtable, start with the vtable that comes from the immediate
  746.     baseclass, not the most base class.  This is needed because later
  747.     fixups (for non-first and virtual baseclasses) do not fix up this
  748.     case.
  749.  
  750. Fri Jan     4 06:55:00 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  751.  
  752.     * optabs.c (expand_binop): Fix typo in testing for SImode operation.
  753.     Generalize to apply in more cases by calling emit_store_flag rather
  754.     than doing the gen_sltu explicitly.
  755.  
  756.     * expmed.c (store_bit_field, extract_bit_field): When insv/extv
  757.     don't allow MEM and we need to load the field into a register, don't
  758.     use the mode of OP0 if it is wider than the mode to be used for
  759.     insv/extv operating on a register.
  760.  
  761.     * expmed.c (emit_stor_flag): Try to convert some comparisons with
  762.     1 and -1 to comparisons with zero.
  763.     Explicitly test sign bit of STORE_FLAG_VALUE rather than testing it
  764.     for being less than zero.
  765.  
  766.     * cse.c (find_comparison_args): Don't compute STORE_FLAG_VALUE < 0;
  767.     instead, test the relevant sign bit.
  768.     Use GET_RTX_CLASS instead of comparison_code_p.
  769.     * loop.c (get_condition): Likewise.
  770.  
  771.     * recog.c (validate_change): Eliminate duplicate code by always
  772.     saving the change.  If in_group == 0, call apply_change_group.
  773.     (apply_change_group): If recog_memoized fails, see if we have a
  774.     CLOBBER at the end.  Use validate_change to replace the pattern
  775.     with one without the CLOBBER if so; later we will verify that change.
  776.  
  777.     * tree.c (stabilize_reference_1): Now static; also, define as forward
  778.     reference at start of file.
  779.  
  780.     * rtl.def: Add new field in DEF_RTL_EXPR macro to give the "class"
  781.     of the rtx operation.
  782.     * rtl.h: DEF_RTL_EXPR has one additional arg.
  783.     (rtx_class, GET_RTX_CLASS): New var and macro.
  784.     * rtl.c: DEF_RTL_EXPR has one additional arg.
  785.     (rtx_class): Initialize table.
  786.  
  787.     * reload.c (push_reload): If an input operand contains a dead
  788.     register used nowhere else in the insn, try to use it as a reload reg.
  789.     * reload1.c (reload_as_needed): If cancelling optional reload,
  790.     clear reload_reg_rtx.
  791.     (choose_reload_regs): If we can find reload value lying around,
  792.     use that register unless choice made by find_reloads would also save
  793.     an insn (the new choice added above won't).
  794.  
  795.     * genoutput.c: Update comments on things written.  Change order to
  796.     agree with the order written.
  797.     (output_epilogue): Remove extraneous tests.
  798.  
  799. Thu Jan     3 13:32:54 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  800.  
  801.     * rtl.c (read_rtx): Cast NULL vector.
  802.  
  803.     * By Jim Wilson.
  804.     * tree.c (stabilize_reference): Modified to call stabilize_reference_1
  805.     instead of save_expr.
  806.     (stabilize_reference_1): New function.    For arithmetic operator trees,
  807.     recurse on the subtrees.  Otherwise, put a SAVE_EXPR around the
  808.     tree if it has side-effects.  
  809.  
  810. Thu Jan     3 12:37:56 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  811.  
  812.     * reload1.c (choose_reload_regs): Only set reload_when_needed to
  813.     RELOAD_FOR_OUTPUT or RELOAD_FOR_INPUT when it used to be RELOAD_OTHER.
  814.  
  815. Wed Jan     2 18:28:23 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  816.  
  817.     * emit-rtl.c (init_emit_once): Fix typo setting constm1_rtx.
  818.  
  819. Wed Jan     2 07:53:04 1991  Michael Tiemann  (tiemann at cygnus.com)
  820.  
  821.     * sparc.md (fix_truncdfsi2 recognizer): xoperands must have 3
  822.     elements because `output_fp_move_double' can write to operands[2].
  823.  
  824. Wed Jan     2 17:16:20 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  825.  
  826.     * calls.c (emit_call_1): If we have call_pop, use it if we have
  827.     no stack arguments.
  828.  
  829.     * out-vax.c (relational_op): Deleted, redundant.
  830.     * vax.md (branch): Use comparison_operator (in recog.c) instead of
  831.     relational_op.
  832.     * tm-vax.h (PRINT_OPERAND_PUNCT_VALID_P): "C" is not punctuation.
  833.  
  834.     * reload1.c (reload_as_needed, forget_old_reloads_1): Don't clear
  835.     reg_has_output_reload and reg_is_output_reload for each insn, just
  836.     ones that need reload.    Instead, interpret each entry as zero if
  837.     n_reloads == 0.
  838.  
  839. Wed Jan     2 15:52:13 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  840.  
  841.     * optabs.c (expand_binop): Fix typos.
  842.  
  843.     * toplev.c (rest_of_compilation): Clear cse_not_expected after loop.
  844.     * rtl.h (cse_not_expected): Declare here.
  845.     * expr.h: Not here.
  846.  
  847. Tue Jan     1 21:55:11 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  848.  
  849.     * emit-rtl.c (constm1_rtx): New standard constant.
  850.     (gen_rtx): Use it when appropriate.
  851.     (init_emit_once): Initialize it.
  852.  
  853.     * out-vax.c (split_quadword_operands): New function.
  854.     (relational_op): Likewise.
  855.     * vax.md (extendsidi2, adddi3, subdi3): New patterns.
  856.     (movdi): Use clrq when appropriate.
  857.     (movaq recognizer): New pattern.
  858.  
  859.     * recog.h (OUT_FCN): New macro.
  860.     * genoutput.c: Include recog.h in output file.    No
  861.     longer define "const", since that happens in recog.h.
  862.  
  863.     * tm-vax.h (PRINT_OPERAND): Add 'C' to print a reversed condition.
  864.     * out-vax.c (rev_cond_name): Return its name.
  865.     * vax.md (unnamed patterns): Combine several reversed branch patterns
  866.     into one, using match_operator with relational_op and "%C".
  867.  
  868.     * optabs.c (expand_binop): Handle multi-word addition and subtraction.
  869.  
  870.     * Makefile.in (install-gnulib): Use RANLIB_TEST.  Use libg_dir.
  871.     (libg_dir): New customization variable.
  872.  
  873.     * assert.h (__assert): Use standard GNU format for error messages.
  874.  
  875. Tue Jan     1 21:25:00 1991  Richard Kenner  (kenner at vlsi1)
  876.  
  877.     * reload1.c (eliminate_regs, case PLUS): Always move constant to the
  878.     outside of a PLUS expression.
  879.  
  880. Tue Jan     1 11:45:22 1991  Richard Stallman  (rms at mole.ai.mit.edu)
  881.  
  882.     * ecoff-cmp: Specify `c' in option to tail.
  883.  
  884.     * stor-layout.c (layout_record, layout_union, layout_type):
  885.     Use ROUND_TYPE_ALIGN and ROUND_TYPE_SIZE to compute
  886.     alignment and size of records, unions and arrays.
  887.     * ROUND_TYPE_ALIGN: New.  Args are type, spec'd align, other min align.
  888.     * ROUND_TYPE_SIZE: New.     Args are type, size of contents, align.
  889.  
  890.     * reload1.c (emit_reload_insns) [PRESERVE_DEATH_INFO_REGNO_P]:
  891.     Scan output and output-address reloads together.
  892.     Check for matching hard reg.
  893.  
  894.     * config.gcc: Set proper shell vars in big dispatch.  Not `machine'.
  895.     (i386-isc): New alternative.
  896.  
  897. Tue Jan     1 08:29:49 1991  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  898.  
  899.     * reorg.c (update_block): Turn bb_tick update back on; it is needed,
  900.     after all.
  901.  
  902. Mon Dec 31 18:12:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  903.  
  904.     * genattrtab.c (write_test_expr, case EQ_ATTR): Use correct expression
  905.     number for attribute value.
  906.  
  907.     * cse.c (cse_insn): Use single_set when looking for an insn that sets
  908.     cc0 followed by one that no longer does.
  909.  
  910.     * recog.c (find_single_use): If the next insn after one that sets
  911.     cc0 is not an INSN or JUMP_INSN, return 0; don't blow up on a NOTE.
  912.  
  913.     * emit-rtl.c (emit_insn_before, emit_insn_after, emit_insn): Return
  914.     something sensible if a SEQUENCE of length zero was passed.
  915.     We no longer make a SEQUENCE with XVEC == 0, so don't test for it.
  916.  
  917.     * reload1.c (emit_reload_insns): Handle gen_move_insn returning
  918.     no insns (occurs on RT for dummy registers).
  919.     
  920.     * rtl.h (reg_cc0_rtx, find_cc): No longer needed.
  921.     * emit-rtl.c: Likewise.
  922.     * conditions.h: Entire file is #ifdef HAVE_cc0.
  923.     * final.c (CC_STATUS_INIT): Make a null default #ifndef HAVE_cc0.
  924.     (cc_status): No longer exists #ifndef HAVE_cc0.
  925.     (final_scan_insn): Do CC processing only #ifdef HAVE_cc0.
  926.     (alter_cond): Only exists #ifdef HAVE_cc0.
  927.     * genemit.c (gen_exp): No longer have CC0_REGNUM or reg_cc0_rtx.
  928.     * genoutput.c (main): Include insn-config.h before conditions.h.
  929.     * reorg.c: Likewise.
  930.     * jump.c (rtx_equal_for_thread_p): Remove reference to CC0_REGNUM;
  931.     we'll have to do this optimization some other way later.
  932.     * tm-a29k.h (NOTICE_UPDATE_CC): Deleted.
  933.  
  934. Mon Dec 31 14:44:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  935.  
  936.     * reload.h (enum_reload_when_needed):
  937.     New alternatives RELOAD_FOR_OUTPUT, RELOAD_FOR_INPUT.
  938.     * reload1.c (choose_reload_regs): Use those when appropriate.
  939.     (mark_reload_reg_in_use): Record this usage specially.
  940.     (reload_reg_free_p, reload_reg_free_before_p): Handle this usage.
  941.     (reload_reg_reaches_end_p): Likewise.
  942.     (emit_reload_insns): Treat RELOAD_FOR_INPUT like RELOAD_OTHER.
  943.  
  944.     * i386.md (push for SFmode): Operand of fst was missing.
  945.  
  946. Mon Dec 31 08:50:17 1990  Craig Burley    (burley at pogo.ai.mit.edu)
  947.  
  948.     * stor-layout.c (layout_type): For ARRAY_TYPE case, don't try
  949.     and compute a size if there is no TYPE_MAX_VALUE for the index.
  950.     * tree.c, tree.h (build_index_2_type): New function, like
  951.     build_index_type except it accepts the low value as an arg instead
  952.     of assuming 0.
  953.  
  954. Mon Dec 31 08:09:10 1990  Michael Tiemann  (tiemann at cygnus.com)
  955.  
  956.     * cplus-typeck.c (c_expand_return): Handle case when we try
  957.     to return a void value (such as a void function call) in a
  958.     function returning void, and there are cleanups to run.
  959.  
  960. Sun Dec 30 21:08:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  961.  
  962.     * tm-a29k.h (TARGET_VERSION): Can't use target_flags since we can
  963.     be called from gcc.c.
  964.  
  965.     * tm-rs6000.h (REG_ALLOC_ORDER): Put r12 after r13; it might be 
  966.     holding a DImode value and so might be very expensive (we won't
  967.     worry about TImode).
  968.  
  969.     * rs6000.md (subtract patterns): Fix incorrect operand number in %I.
  970.     (movti): Disallow indexed memory operands.
  971.  
  972.     * out-rs6000.c (print_operand, case 'm'): Fix typo.
  973.     (includes_rshift_p): Correctly compute mask.
  974.  
  975.     * out-a29k.c (output_operand): Add missing parentheses.
  976.     (print_operand): Replace if/then/else structure with switch statement.
  977.  
  978.     * a29k.md (beq, bne): Try to use NE test whenever possible; it
  979.     will produce better code if we have bit-tests.
  980.  
  981. Sun Dec 30 12:02:03 1990  Michael Tiemann  (tiemann at cygnus.com)
  982.  
  983.     * tm-sparc.h (PRINT_OPERAND): Put 'R' case before REG so that it
  984.     takes when 'R' is passed in as CODE.  Also, handle 'B' letter.
  985.  
  986.     * sparc.md: (pattern for converting DFmode to SImode): Second
  987.     argument to `output_asm_insn' should be `operands', not zero.
  988.     (tablejump): The jump insn is "jmp", not "jump".
  989.     (gen_fixtruncdfsi2): operands[2] should get the pseudo, not
  990.     operands[3] (which is nonexistent).
  991.     (call): Fix typo which had %o7 being emitted as %o.
  992.     (various patterns): Fixed places where match_operand had the wrong
  993.     operand number.
  994.  
  995. Sat Dec 29 17:27:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  996.  
  997.     * sparc.md: cc_status no longer handles condition code updates.
  998.     Instead, condition codes are explicitly set and used via
  999.     hard register 0.  Special attributes specific to condition codes
  1000.     (such as whether conditional branches should test the integer or
  1001.     floating-point condition codes, or that the condition codes cannot
  1002.     be tested for a condition which would test the overflow bit) are
  1003.     handled by encoding the attribute in the mode for the condition
  1004.     code register.
  1005.     (type attributes): type "unary" insns have one input operand (1)
  1006.     and one output operand (0)
  1007.     type "binary" insns have two input operands (1,2) and one output (0)
  1008.     type "compare" insns have one or two input operands (0,1) and no output
  1009.     type "move" and type "arith" have been deleted.
  1010.     (prescan attribute): Deleted.  Machine description now puts
  1011.     floating-point zero in registers when needed.
  1012.     (use_cc attribute): Deleted.
  1013.     (fpcc define_delay): No longer depend on "use_cc" attribute.
  1014.     Also, fpcc delay characteristics hold for "fpcc" type insns.
  1015.     (cc attribute): Deleted.
  1016.     (cmpxx patterns): Now written as `define_expand's so we can stow
  1017.     away operands.    When the pattern that will use the results of the
  1018.     conditional test is emitted, it can use these operands to figure
  1019.     out the right way to emit the compare.
  1020.     (bcc patterns): Rewritten to emit comparison (based on stowed-away
  1021.     info) before emitting branch.
  1022.     (scc patterns): Handle all the cases with branch-free code.
  1023.     Added new pattern to recognize (x + (i == 0)).
  1024.     (movsi pattern recognizer): Split into two patterns so that e.g.
  1025.     "(set:SI (mem:SI ...) (const_int 5))" is never considered valid.
  1026.     Instead this has to be a two-insn sequence.
  1027.     (mov{hq}i pattern recognizers): Ditto.
  1028.     (movstrsi): Force operands[2] out of memory if it was in memory.
  1029.     ({zero,sign}_extendXY): Now written as `define_expand's instead of
  1030.     `define_insn's for more accurate machine modeling.
  1031.     Added new pattern to optimize bit-field compares.
  1032.     (floatsisf2 patterns): Delete redundant setting of "in_call_delay"
  1033.     attribute.
  1034.     (fix_trunc{sf,df}si2 pattern): Use clobberable register in which
  1035.     the conversion can take place.    Used to use %f30,%f31.
  1036.     ({add,sub}di3 pattern): Put explicit clobber of (reg 0) in the
  1037.     pattern.
  1038.     (negdi2 pattern): Ditto.
  1039.     Added new patterns to handle merging of addition/subtraction with
  1040.     condition code testing (with (reg:CC_NOOV 0)).
  1041.     ({and,ior,xor}cbsi3 pattern): Obsolete.     Deleted.
  1042.     Added patterns to represent setting of condition codes in addition
  1043.     to performing logical operations.
  1044.     ({neg,abs}df2 pattern): Use `R' print letter to overcome the need
  1045.     to use a C action instead of a simple template.
  1046.     (ash{l,r}{hi,qi}3): Define patterns for shifts on sub-SImode
  1047.     operands.
  1048.     (jump pattern): Use `*' print code to obviate the need for a C
  1049.     action when a template can do.
  1050.     (tablejump pattern): Ditto, with `^' code as well.
  1051.     Deleted `define_split's that were used to handle mem-mem moves in
  1052.     the case of PIC generation.  Since all move insns are emitted and
  1053.     maintained as SPARC-valid insns, these should no longer be needed.
  1054.     (various patterns): (HI ...) is spelled (HI:SI ...).  Also, use
  1055.     `gen_lowpart' instead of building subregs directly.
  1056.     New `define_split's were added to split scc insns into simpler
  1057.     components which have single-insn templates.
  1058.     Fixed a return peephole when returning a SFmode value (it was
  1059.     missing the "ret"!).
  1060.     Lots of complicated peepholes that brought cc testing and
  1061.     arithmetic operations together were deleted.  This is because the
  1062.     combiner should now handle all these cases.
  1063.  
  1064.     * out-sparc.c (sparc_compare_op{0,1}): New global variables.
  1065.     Used to hold the operand(s) to compare insns in lieu of emitting a
  1066.     compare.
  1067.     (reg_or_cc0_operand): Deleted.
  1068.     (normal_comp_operator): New function.
  1069.     (cc_arithop): Now returns 0 for PLUS and MINUS.
  1070.     (cc_arithopn): Now returns 0 for XOR.
  1071.     (gen_compare_reg): New function.
  1072.     (sparc_address_cost): Simplified because it turns out it doesn't
  1073.     matter what is returned for illegitimate addresses.
  1074.     (hard_regno_mode_ok): Updated to use these new #defines.
  1075.     (C_MODES): New #define, for condition code modes.
  1076.     (S_MODES): Ditto, for single-word (and smaller) quantities.
  1077.     (D_MODES): Ditto, for double-word (and smaller) quantities.
  1078.     (T_MODES): Ditto, for tetra-word (and smaller) quantities.
  1079.     (SF_MODES): Ditto, for SFmode quantities.
  1080.     (DF_MODES): Ditto, for SF_MODE, DFmode, SCmode, etc.
  1081.     (TF_MODES): Ditto, for DF_MODE, TFmode, DCmode, etc.
  1082.     (output_floatsi{df,sf}2): Greatly simplified.
  1083.     (output_pic_sequence,output_pic_sequence_2,fp_zero_hook,
  1084.     output_tail_call): Turned off.
  1085.  
  1086.     * tm-sparc.h (ASM_SPEC): Pass `-k' to assembler if compiling PIC.
  1087.     (WORDS_BIG_ENDIAN): Define as 1, not 0.
  1088.     (FIXED_REGISTERS): %f30 and %f31 are now allocatable.
  1089.     (REG_CC0_RTX, CC0_REGNUM): Deleted.
  1090.     (EXTRA_CC_MODES): New modes CC_NOOVmode and CCFPmode.  The former
  1091.     is for when the overflow bit it not to be tested; the latter is
  1092.     for when the condition is sitting in the floating point unit.
  1093.     (SELECT_CC_MODE): New macro.
  1094.     (FINAL_PRESCAN_INSN): Deleted.
  1095.     (CC_* macros): Deleted.
  1096.     (PRINT_OPERAND_PUNCT_VALID_P): New valid chars are '#' (for
  1097.     whether to print a noop or not), '*' (for whether to print a ",a"
  1098.     or not), and '^' (for whether to emit code for PIC branch or not).
  1099.     (PRINT_OPERAND{,_ADDRESS}): Replace calls to fprintf by calls to
  1100.     fputs where that is convenient.
  1101.  
  1102.     * expr.h, cplus-dbxout.c: #ifdef BYTES_BIG_ENDIAN should be #if.
  1103.  
  1104.     * reload.c (struct replacement): Add new field subreg_loc.
  1105.     (push_reload): If reloading SUBREG_REG of a paradoxical SUBREG,
  1106.     store the location of the SUBREG in subreg_loc in REPLACEMENTS.
  1107.     (push_replacement): Initialize subreg_loc.
  1108.     (subst_reloads): Don't produce nested SUBREGs; use subreg_loc.
  1109.  
  1110.     * regclass.c (regclass): Handle (set X (op CONST Y)) properly when
  1111.     the modes of operands 0 and 1 are different.
  1112.  
  1113. Sat Dec 29 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1114.  
  1115.     * cccp.c (macroexpand): Test traditional when computing expansion size.
  1116.  
  1117.     * toplev.c (compile_file):
  1118.     If profiling, leave some space after `gcc_compiled.'.
  1119.     * tm-m88k.h, tm-sparc.h, tm-sun386i.h (ASM_IDENTIFY_GCC): Deleted.
  1120.  
  1121.     * reload1.c (emit_reload_insns): Set reg_reloaded_contents, etc, here.
  1122.     (choose_reload_regs): Not here--except for reg_has_output_reload.
  1123.  
  1124.     * c-parse.y (nested_function, notype_nested_function):
  1125.     Use compstmt for body, not compstmt_or_error.
  1126.  
  1127.     * Makefile.in (install-headers): Use basename on 
  1128.     * stupid.c (stupid_mark_refs): Really do mark clobbered hardreg
  1129.     live before the insn.
  1130.  
  1131. Fri Dec 28 05:44:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1132.  
  1133.     * emit-rtl.c (subreg_lowpart_p): Use correct modes in
  1134.     WORDS_BIG_ENDIAN case.
  1135.  
  1136.     * reload.c (combine_reloads): Don't try to reference
  1137.     insn_operand_constraint for an ASM insn.
  1138.     Fix typo in testing for modified operand.
  1139.  
  1140. Thu Dec 27 19:02:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1141.  
  1142.     * cse.c (cse_insn): Ensure we invalidate SET_DEST if SET_SRC is a CALL.
  1143.  
  1144.     * cse.c (fold_rtx): Save mode of original first operand in case this
  1145.     is becoming (sign_extend (const_int)).
  1146.  
  1147. Thu Dec 27 16:15:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1148.  
  1149.     * m88k.md, out-m88k.c (CCmode): Use it.
  1150.     (emit_bcnd): Avoid loosing when bcnd is changed into sxx.
  1151.     (hi16/lo16): Don't use these to form 16-bit immediate values.
  1152.     Introduce and use %X/%x.
  1153.     (length attribute): Make better use of defaults.
  1154.  
  1155.     * tm-v88r32.h (LIB_SPEC): Goes here rather than in xm-v88r32.h.
  1156.     * xm-*88*.h: Clean these up.  Most differences go away by relying
  1157.     on the 88open standards.
  1158.  
  1159. Thu Dec 27 12:48:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1160.  
  1161.     * expmed.c (store_bit_field, extract_bit_field):
  1162.     Change #ifdef to #if, testing BYTES_BIG_ENDIAN.
  1163.  
  1164. Thu Dec 27 07:36:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1165.  
  1166.     * reorg.c (find_end_label): Ignore USE and CLOBBERs when looking for
  1167.     label at end of function.
  1168.  
  1169. Wed Dec 26 22:35:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1170.  
  1171.     * emit-rtl.c (sequence_element_free_list, sequence_result): New vars.
  1172.     (restore_emit_status, init_emit): Initialize them.
  1173.     (emit_insn_before, emit_insn_after, emit_insn): Save SEQUENCE in
  1174.     sequence_result.
  1175.     Make these three routines more alike in structure.
  1176.     (start_sequence, end_sequence, push_to_sequence): Cache INSN_LIST pairs
  1177.     in sequence_element_free_list rather than making new ones.
  1178.     (start_sequence): No longer return unused rtx; only one caller
  1179.     needed to be changed (in function.c, see below).
  1180.     (end_sequence): No longer has argument.
  1181.     (gen_sequence): Try obtaining a pre-built SEQUENCE from
  1182.     sequence_result; no longer special-case length 0 vectors.
  1183.     * function.c (fixup_memory_subreg): start_sequence no longer
  1184.     returns an rtx and end_sequence no longer has an argument.
  1185.     * rtl.h (start_sequence): Now void.
  1186.     (push_to_sequence, end_sequence): Define.
  1187.  
  1188. Wed Dec 26 13:19:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1189.  
  1190.     * gnulib.c: No longer #undef perform_* if not __GNUC__.
  1191.     (perform_*): Define each if not already def.
  1192.  
  1193. Tue Dec 25 17:31:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1194.  
  1195.     * loop.c (get_condition): Rework scan that looks for sets of things
  1196.     being compared to allow intervening insns; check to ensure that
  1197.     they don't set something that we need.    Return 0 if the best we can
  1198.     do is find something whose mode is in class MODE_CC.
  1199.  
  1200.     * calls.c (emit_call_1): RETURN_POPS_ARGS now gets the length of
  1201.     arguments on the stack and returns the number of bytes popped by the
  1202.     called function.
  1203.     * output.h (current_function_pops_args): Change description.
  1204.     * function.c (current_function_pops_args): Likewise.
  1205.     (assign_parms): Initialize current_function_pops_args here.
  1206.     (init_function_start): Not here.
  1207.     * tm-*.h (RETURN_POPS_ARGS): Reflect new meaning.
  1208.     (FUNCTION_EPILOGUE): Use new meaning of current_function_pops_args.
  1209.     * out-i386.c (function_epilogue): Likewise.
  1210.  
  1211. Tue Dec 25 15:52:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1212.  
  1213.     * gnulib.c (all functions): Support a hook for redefining contents.
  1214.     These hooks are called perform_addsi3, and so on.
  1215.     They are used only if compiling with GCC.
  1216.  
  1217.     * rtlanal.c (single_set): Moved from loop.c.
  1218.  
  1219.     * cse.c (fold_rtx): For a MEM, fold address when looking for constant.
  1220.     (cse_insn): When fetch a constant label from a dispatch,
  1221.     substitute into following tablejump.
  1222.     (find_best_addr): Clear do_not_record before hashing.
  1223.     * jump.c (mark_jump_label): Don't record table-labels on non-jumps.
  1224.  
  1225.     * m68k.md (casesi_2 recognizer): Use register_operand as predicate.
  1226.  
  1227. Mon Dec 24 17:54:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1228.  
  1229.     * cse.c (fold_rtx): Handle ADDR_DIFF_VEC like ADDR_VEC,
  1230.     when the index in it is constant.
  1231.  
  1232.     * c-decl.c (start_function): Handle new option -Wmissing_prototypes.
  1233.     (c_decode_option): Likewise.
  1234.  
  1235. Mon Dec 24 07:21:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1236.  
  1237.     * rtl.h (reload_completed, reload_in_progress): Now defined here.
  1238.     * output.h (reload_completed): No longer defined here.
  1239.     * emit-rtl.c, optabs.c, recog.c, sched.c, toplev.c, out-a29k.c:
  1240.     Don't define reload_in_progress or reload_completed.
  1241.     * a29k.md, romp.md, rs6000.md: Likewise.
  1242.  
  1243.     * machmode.def: Terminate GET_MODE_WIDER_MODE chains with VOIDmode,
  1244.     not zero.
  1245.     (CCmode): New mode.
  1246.     * machmode.h (enum machine_mode): Includes modes in EXTRA_CC_MODES,
  1247.     if defined.
  1248.     (enum mode_class): New class MODE_CC; delete MODE_FUNCTION.
  1249.     * rtl.c (mode_name): Define to be known size; add names for extra
  1250.     CC modes, if present.
  1251.     (mode_class, mode_size, mode_unit_size, mode_wider_mode): Define
  1252.     to be known size.
  1253.     (init_rtl): Initialize extra CC modes.
  1254.  
  1255. Sat Dec 22 19:33:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1256.  
  1257.     * tm-i386v.h (MAXPATHLEN): Define if not already defined.
  1258.     * tm-i386vgas.h: New file.
  1259.  
  1260.     * out-i386.c (print_operand_address): Handle scaled indexing.
  1261.  
  1262. Sat Dec 22 11:15:03 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1263.  
  1264.     * m88k.md, out-m88k.c, tm-m88k.h (swapped cmpsi): Don't rely on
  1265.     NOTICE_UPDATE_CC doing the job.     Instead, compliment the swapped
  1266.     compare.  Also, make COMPARE SImode.
  1267.     (and/cmpsi/sxx/neg): Add patterns to do this in one instruction.
  1268.     Change sign_extend/sxx to neg/sxx for other cases.
  1269.     (iorsi3/xorsi3): Use alternatives and explicit patterns.
  1270.     (casesi): Make the constant the second operand to cmpsi.
  1271.     (output_and): Must compliment value to use the clr instruction.
  1272.     (output_reg_adjust): Simplify the interface and use TEMP_REGNUM.
  1273.     (TARGET_SWITCHES): Eliminate needless no-* options.
  1274.  
  1275. Fri Dec 21 05:46:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1276.  
  1277.     * recog.c (find_single_use{,_1}): New functions.
  1278.     * rtl.h (find_single_use): Declare it.
  1279.  
  1280. Thu Dec 20 21:27:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1281.  
  1282.     * optabs.c (init_optabs): Add __ to names of floating compare fcns.
  1283.  
  1284. Thu Dec 20 18:21:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1285.  
  1286.     * expr.c (expand_builtin, case BUILTIN_FFS): Get mode for arg from
  1287.     tree, not rtx, in case arg was CONST_INT.
  1288.  
  1289. Thu Dec 20 17:31:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1290.  
  1291.     * c-decl.c (init_decl_processing): Don't define `ffs'.
  1292.  
  1293. Wed Dec 19 16:59:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1294.  
  1295.     * gcc.c (main): Handle if SIGPIPE not defined.
  1296.  
  1297.     * cccp.c (xmalloc, xrealloc, xcalloc): Don't declare malloc or realloc.
  1298.  
  1299. Wed Dec 19 06:50:17 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1300.  
  1301.     * combine.c (gen_lowpart_for_combine): Avoid making a nested SUBREG
  1302.     when we are being passed a paradoxical SUBREG of MEM.
  1303.  
  1304.     * cse.c (new_basic_block): Compilations spend about 5% of their time
  1305.     in this function so replace loop initializing qty_{first,last}_reg
  1306.     with copy from a larger consec_ints.  Only loop over extra entries.
  1307.     (cse_main): Allocate consec_ints to be default size of max_qty large.
  1308.  
  1309.     * reorg.c (get_branch_condition): Fix typos when reversing condition.
  1310.     (condition_dominates_p): Fix typo in comparison.
  1311.     (redundant_insn_p): This function was taking about 4% of the
  1312.     compilation time.  Rework so it doesn't split, only looks at resource
  1313.     usage if it finds a matching insn (since it usually won't), and
  1314.     improve code that looks at resources.  Now takes about 0.5% of
  1315.     compilation time.
  1316.     (fill_simple_delay_slots): Always call mark_target_live_regs with an
  1317.     active insn; currently being called with a CODE_LABEL.
  1318.  
  1319. Tue Dec 18 14:08:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1320.  
  1321.     * out-sparc.c: Fix uninitiated comment.
  1322.  
  1323.     * final.c (end_final): Call strip_off_ending to remove the file
  1324.     name suffix.
  1325.     (final_start_function): Execute SDB_DEBUGGING_INFO code only if
  1326.     generating SDB symbol info.
  1327.  
  1328.     * Makefile.in (cccp.o): Depend on gcc.
  1329.  
  1330.     * tm-sparc.h, xm-sparc.h: Make this machine big-endian.
  1331.  
  1332.     * expr.c (expand_builtin): Pass correct arguments to gen_cmpstrsi4.
  1333.  
  1334.     * recog.c (nonmemory_operand): Reject reg whose class is NO_REGS.
  1335.  
  1336.     * c-decl.c (finish_struct, grokdeclarator):
  1337.     Strip NON_LVALUE_EXPR more than once.
  1338.  
  1339.     * combine.c (combine_instructions): Check that a jump insn uses CC0
  1340.     before trying to combine it with an insn that sets CC0.
  1341.  
  1342.     * cplus-decl.c, cplus-search.c, gcc.c, objc-actions.c, rtl.c, stmt.c,
  1343.     symout.c, toplev.c: Use xmalloc instead of malloc.
  1344.  
  1345.     * cccp.c (do_include): Check for truncation of precompiled file name.
  1346.  
  1347. Mon Dec 17 16:53:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1348.  
  1349.     * c-typeck.c (build_binary_op_nodefault, build_conditional_expr):
  1350.     Fix indentation.
  1351.     * reload1.c (choose_reload_regs): Fix indentation.
  1352.     (gen_input_reload): Fix typo in comment.
  1353.  
  1354.     * reload.c (find_reloads): Call abort when the last operand is
  1355.     marked commutative, to make it easier to find this error.
  1356.  
  1357.     * rtlanal.c (refers_to_regno_p): Don't crash if X is 0.
  1358.  
  1359. Mon Dec 17 15:29:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1360.  
  1361.     * local-alloc.c (combine_regs): No need to see if suggested hard reg
  1362.     is suitable; if it isn't, it won't end up being used.  Existing tests
  1363.     were too conservative.
  1364.  
  1365.     * jump.c (delete_jump): When searching for the SET of the condition
  1366.     codes for a jump insn, give up if we hit a SEQUENCE.
  1367.  
  1368. Mon Dec 17 02:14:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1369.  
  1370.     * c-typeck.c (c_size_in_bytes): New function.
  1371.     (pointer_int_sum, pointer_diff): Use that.
  1372.     (pointer_diff): Handle warn_pointer_arith.
  1373.  
  1374. Sun Dec 16 22:27:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1375.  
  1376.     * c-decl.c (start_decl): Ignore with error any init for a parm.
  1377.     (finish_decl): Likewise.
  1378.  
  1379. Sun Dec 16 01:02:57 1990  Michael Tiemann  (tiemann at cygnus.com)
  1380.  
  1381.     * jump.c (rtx_equal_for_thread_p): Treat the special CC register as
  1382.     equivalent for the two threads we are looking at.
  1383.  
  1384.     * combine.c (try_combine): Fix typo in loop over I1 with PARALLEL
  1385.     body.  Also, don't test HARD_REGNO_MODE_OK for hard registers we are
  1386.     thinking about combining.  This screws up using registers to
  1387.     represent the condition codes, and probably doesn't save anything in
  1388.     the general case.
  1389.  
  1390.     * expmed.c (expand_and): Comment says that result is always stored
  1391.     in target, so the code now does this.
  1392.  
  1393. Sat Dec 15 18:09:46 1990  Michael Tiemann  (tiemann at cygnus.com)
  1394.  
  1395.     * loop.c (get_condition): Try a little harder to find the setter of
  1396.     the register used in a conditional test.  On the SPARC it is vital
  1397.     to either find the setter of the register used for the condition
  1398.     codes or for this function to return 0.     Also, have test for
  1399.     non-NULL, matching `set' govern both normal and reversed cases of
  1400.     comparisons.
  1401.  
  1402.     * jump.c (jump_optimize): When moving USE insns from before jumps to
  1403.     after BARRIERs, put the label for the redirected jump after the
  1404.     BARRIER instead of just before the PREV_INSN of the original target.
  1405.     This gets around problems when there are NOTEs between the BARRIER
  1406.     and the original target.
  1407.   
  1408. Sat Dec 15 10:16:29 1990  Michael Tiemann  (tiemann at cygnus.com)
  1409.  
  1410.     * sparc.md (cmpdf,cmpsf): No longer a define expand.  Now depends
  1411.     on fp zero being loaded into a register.
  1412.     (tstsi,tstdf,tstsf): Deleted.
  1413.     (seq,sne): Fail if we are not testing operands of integer mode.
  1414.     (movsi): Split recognizers into two parts.  The first handles
  1415.     [reg,mem,zero] <=> [reg,mem]; the second handles [reg,const] =>
  1416.     [reg].
  1417.     (adddf,subdf,negdf): Simplify output routines using 'R' as an
  1418.     output letter.
  1419.     (tail_call): Turn this off.  It is never used, and it depends on
  1420.     routines which are about to become broken.
  1421.     (various places): Add USE_CC attribute where appropriate.
  1422.     (various places): Change (use (reg:SI 0)) to (clobber (reg:SI 0))
  1423.     and delete CC_CLOBBER attribute from the pattern.
  1424.     * out-sparc.c (move_operand): No longer recognize certain
  1425.     immediates as a `move_operand'.
  1426.     (move_reg_or_immed_operand): New recognizer for immediates no
  1427.     longer recognized by `move_operand'.
  1428.     (output_pic_sequence*): Turned off.
  1429.     (sparc_address_cost): Simplified, since the value returned is not
  1430.     used if the address is not legitimate.
  1431.     (emit_move_sequence): Use `gen_lowpart' instead of building
  1432.     SUBREGs explicitly.
  1433.     (make_f30_contain_zero): Deleted.
  1434.     (output_tail_call): Turned off.
  1435.     * tm-sparc.h (PRINT_OPERAND): Recognize 'R' code letter, which
  1436.     means print the name of REGNO (X)+1.  No longer recognizes the 'G'
  1437.     letter.
  1438.     (PRINT_OPERAND,PRINT_OPERAND_ADDRESS): Replace various calls to
  1439.     fprintf with calls to fputs or fputc.
  1440.     (FINAL_PRESCAN_INSN): No longer defined.
  1441.  
  1442. Sat Dec 15 14:37:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1443.  
  1444.     * recog.c (offsettable_address_p): Check validity in narrower modes.
  1445.  
  1446. Sat Dec 15 11:21:55 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1447.  
  1448.     * syms.h sdbout.c (T_VOID): Ensure that T_VOID is provided a
  1449.     default meaning if <syms.h> is used.
  1450.  
  1451. Fri Dec 14 14:39:10 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1452.  
  1453.     * m88k.md (increment and test peephole): Updated so it would apply
  1454.     with the new method for doing cmpsi/bxx.
  1455.     * m88k.md (function units): Replace decode with alu and update
  1456.     accordingly.
  1457.     * out-m88k.c (emit_test): Add a mode parameter.
  1458.     * tm-m88k.h (GO_IF_LEGITIMATE_ADDRESS): Constrain how the arg
  1459.     pointer can be used.
  1460.  
  1461. Fri Dec 14 06:48:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1462.  
  1463.     * expr.c (convert_move): Add missing argument to some recursive calls.
  1464.  
  1465.     * jump.c (invert_jump): Pass new label to recursive call.
  1466.  
  1467.     * expr.h (setcc_gen_code): Replaces setcc_gen_fctn; stores insn_code.
  1468.     (expand_and, emit_store_flag, label_rtx): Add definitions.
  1469.     (get_condition, compare_from_rtx): Likewise.
  1470.     * rtl.h     (STORE_FLAG_VALUE): Provide a default value of 1.
  1471.     (reg_set_last): Add definition.
  1472.     (const_true_rtx): New variable.
  1473.     * cse.c: Remove defaulting of STORE_FLAG_VALUE from here.
  1474.     (const_true_rtx): Remove static version; now global.
  1475.     * emit-rtl.c (const_true_rtx): Define here.
  1476.     (gen_rtx): Return const_true_rtx for CONST_INT of STORE_FLAG_VALUE.
  1477.     (init_emit_once): Initialize const_true_rtx.
  1478.     * expmed.c (emit_store_flag): Rewritten.  Is passed the operands
  1479.     to compare in addition to the compare operation and emits both the
  1480.     comparison and the store-flag insn.
  1481.     Handles special-case of testing for A < 0 and A >= 0.
  1482.     If result is constant, just return it.
  1483.     Accepts an argument saying how to normalize the result and does
  1484.     appropriate normalization.
  1485.     Give preference to using the sign bit rather than the low-order bit.
  1486.     Allow sxx insns to fail.
  1487.     If don't have seq or sne insns, can sometimes do with abs.
  1488.     * expr.c (expand_expr, case COND_EXPR): For X ? A + 1 : A, only
  1489.     do store_flag if it is cheap.
  1490.     (do_jump): True comparisons return STORE_FLAG_VALUE, not 1.
  1491.     (compare_constants): Correctly handle unsigned comparisons.
  1492.     Return STORE_FLAG_VALUE, not 1, for true comparison.
  1493.     (compare_from_rtx): New name for compare1.
  1494.     Accept size and alignment, for BLKmode.
  1495.     No longer statuc.
  1496.     (compare, compare_from_rtx): No need to pass forward and reverse codes;
  1497.     can trivially derive the reverse code from the forward one.
  1498.     All callers changed.
  1499.     If one operand is constant, make it the second one.
  1500.     (compare): Let compare1 do most of the work.
  1501.     (do_store_flag): Rewritten, now lets emit_store_flag do most of
  1502.     the work.
  1503.     Handles the special-case of comparing a single bit with zero.,
  1504.     Add additional argument ONLY_CHEAP; if non-zero, fail if it looks like
  1505.     this will be an expensive operation; all callers changed.
  1506.     If it looks like it will be possible to do a store-flag operation,
  1507.     call emit_store_flag; if it can't do it, emit as assignments and a
  1508.     jump.  If it doesn't look possible to do a store-flag operation, return
  1509.     zero before expanding anything.
  1510.     * final.c: (final_scan_insn): Don't check STORE_FLAG_VALUE; if the
  1511.     insn doesn't exist, we won't try to change it.
  1512.     * genemit.c (gen_exp): Use const_true_rtx when appropriate.
  1513.     * genrecog.c (add_to_sequence): Likewise.
  1514.     (try_merge_1): Two nodes aren't identical if they are to test
  1515.     different modes or if they have different values of EXACT.
  1516.     * integrate.c: Don't supply a default value for STORE_FLAG_VALUE here.
  1517.     * jump.c: Now includes expr.h (for emit_store_flag and get_condition).
  1518.     (jump_optimize): Split optimization that made store-flag insn
  1519.     into three separate optimizations, the first two of which are useful
  1520.     even in the absence of store-flag operations.
  1521.     (can_reverse_comparison): Set and use of cc0 must be immediately
  1522.     adjacent.
  1523.     (mark_jump_label): Abort if LABEL_REF codesn't contain a CODE_LABEL.
  1524.     Consider two labels adjacent after reload if separated by just USE or
  1525.     CLOBBER insns.
  1526.     * loop.c: Now includes real.h.
  1527.     (get_condition_for_loop): New function.     All callers of get_condition
  1528.     in this file now call this function.
  1529.     (strength_reduce): no_labels_between_p now skips FROM.
  1530.     (get_condition): No longer static.
  1531.     Refine cases when we can't reverse a comparison operation.
  1532.     * optabs.c (init_optabs): Initialize and define setcc_gen_code
  1533.     instead of setcc_gen_fctn.
  1534.     * rtlanal.c (no_labels_between_p): Skip FROM, like as ..._between_...
  1535.     functions do.
  1536.     (no_labels_between): Deleted.
  1537.     (reg_set_last, reg_set_last_1): New functions.
  1538.     * Makefile.in (jump.o): Now include expr.h.
  1539.     (loop.o): Now includes real.h.
  1540.  
  1541.     * c-tree.h (int_ftype_cptr_cptr_sizet, ptr_ftype_ptr_cptr_sizet):
  1542.     New names.
  1543.  
  1544.     * alliant.md, i386.md, m68k.md, m88k.md, ns32k.md, sparc.md: Add mode
  1545.     to comparison operators (EQ, NE, etc.) to agree with the mode of the
  1546.     destination.
  1547.     * out-m88k.c (emit_test): Likewise.
  1548.  
  1549. Fri Dec 14 00:12:46 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1550.  
  1551.     * c-decl.c (finish_struct): Strip NON_LVALUE_EXPR from field width.
  1552.  
  1553. Thu Dec 13 13:10:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1554.  
  1555.     * cplus-init.c (expand_vec_init): Add missing arg to
  1556.     expand_exit_loop_if_false.
  1557.  
  1558.     * config.gcc (tron): Alias for gmicro.
  1559.  
  1560.     * c-decl.c (int_ftype_cptr_cptr_sizet): Variable renamed.
  1561.     (ptr_ftype_ptr_cptr_sizet): Likewise.
  1562.  
  1563.     * gcc.c (default_compilers): Handle .C.
  1564.  
  1565.     * Makefile.in (enquire.o): Add -I. so can find stddef.h.
  1566.     (install-cross): Install cc1obj like the others.
  1567.  
  1568.     * Makefile.in (gnulib.target): Renamed from gnulib.
  1569.     (gnulib): Renamed from tmpgnulib.  Rename that file in this rule.
  1570.     Also delete stamp-gnulib2 here.
  1571.     (gnulib.portable, gnulib.convert): Input now is named gnulib.
  1572.     (GNULIB_TARGET, GNULIB2_TARGET): Define these vars (already in use).
  1573.     (gnulib2.target): Renamed from gnulib2.
  1574.     (gnulib2): New rule, alias for gnulib2.target.
  1575.  
  1576.     * local-alloc.c (local_alloc): Cast an enum used as index.
  1577.     * optabs.c (emit_indirect_jump): Likewise.
  1578.     * reload1.c (choose_reload_regs): Likewise.
  1579.  
  1580. Thu Dec 13 12:38:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1581.  
  1582.     * expmed.c (store_bit_field): Verify that operand 1 of movstrict
  1583.     satisfies its predicate.
  1584.  
  1585. Wed Dec 12 17:26:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1586.  
  1587.     * gvarargs.h: Avoid duplicate inclusion using _VARARGS_H.
  1588.  
  1589. Wed Dec 12 14:11:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1590.  
  1591.     * tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed condition
  1592.     code register.    As a temporary measure, NOTICE_UPDATE_CC is used
  1593.     to track swapped cmpsi cases.
  1594.  
  1595.     * m88k.md (shift patterns): Deal with TARGET_*_LARGE_SHIFT
  1596.     uniformly with define_expand.  Make gen_lshlsi3 generate ASHIFT
  1597.     and eliminate the optimization patterns using ASHIFT.  Eliminate
  1598.     other optimization patterns that will be handled by combine.
  1599.  
  1600. Tue Dec 11 22:13:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1601.  
  1602.     * expr.c (convert_move): With slt, handle dest that's invalid.
  1603.  
  1604.     * stmt.c, tree.h (stmt_nesting):
  1605.     Typedef deleted; use `struct nesting *'.
  1606.     * stmt.c (expand_start_cond): If exitable, make an exit label.
  1607.  
  1608. Tue Dec 11 21:28:56 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1609.  
  1610.     * combine.c (subst, case SUBREG): Update TO for earlier
  1611.     changes so we can always detect (subreg (mem ...)).
  1612.  
  1613. Tue Dec 11 10:56:53 1990  Craig Burley    (burley at pogo.ai.mit.edu)
  1614.  
  1615.     * stmt.c (expand_start_loop{,_continue_elsewhere}): Return pointer
  1616.     to nesting structure (new type stmt_nesting).
  1617.     (expand_exit_loop{,_if_false},expand_continue_loop): Accept pointer
  1618.     to nesting structure, substitute loop_stack if 0 (same behavior as
  1619.     before when there was no argument), so F90 CYCLE and EXIT statements
  1620.     (like C's continue and break stmts) can refer to other than the
  1621.     innermost loop.
  1622.     (expand_start_cond): Uses new names for if-related labels that
  1623.     reflect addition of "elseif" call, and sets endif_label to whatever
  1624.     exit_label gets set to (so we don't generate two identical labels
  1625.     for languages from which if is exitable via expand_exit_something).
  1626.     (expand_start_elseif): New function, used by Fortran.
  1627.     (expand_start_else): Moved above _end_cond so these four functions
  1628.     appear in the order they get called; uses new names, and fills in
  1629.     only endif_label if needed, not exit_label.
  1630.     (expand_end_cond): Handles end of any if, not just if-without-else.
  1631.     Generates both labels for next else/elseif pending (there was none)
  1632.     and the endif itself, if they exist (and there will always be at least
  1633.     one).
  1634.     (expand_end_else): Gone, call expand_end_cond instead.
  1635.     * c-parse.y, cplus-parse.y, objc-parse.y: Pass new 0 argument to
  1636.     expand_..._loop_... to indicate the innermost loop; call
  1637.     expand_end_cond instead of expand_end_else.
  1638.     * tree.h: Typedef for stmt_nesting returned by expand_start_loop...
  1639.     and change their return types accordingly.
  1640.  
  1641. Mon Dec 10 06:59:14 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1642.  
  1643.     * combine.c (check_asm_operands): Delete from here.
  1644.     * recog.c (check_asm_operands): Move to here; no longer static.
  1645.     (validate_change): Don't assume change is valid is asm_noperands >= 0.
  1646.     If recog_memoized returns < 0, accept change if asm_noperands >= 0
  1647.     and check_asm_operands returns non-zero.
  1648.     (apply_change_group): Likewise.
  1649.     (validate_replace_rtx_1): Swap operands on commutative operation
  1650.     if first is constant.
  1651.     Use plus_constant to simplify a PLUS with CONST_INT as second operand.
  1652.  
  1653.     * reload.c (find_equiv_reg): We must have a stable SP if GOAL is
  1654.     a MEM that uses SP.
  1655.  
  1656.     * combine.c (try_combine): Don't do anything if I2 or I1
  1657.     has an ASM_OPERANDS and CLOBBERS; we'll need those clobbers
  1658.     and it is too messy to try to get things set up correctly.
  1659.  
  1660. Sun Dec     9 22:07:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1661.  
  1662.     * cccp.c (collect_expansion): Don't check for /* */ concat here.
  1663.     (macroexpand): Always use raw arg if traditional.
  1664.  
  1665.     * c-parse.y (unary): Mark address of label as constant.
  1666.  
  1667. Sun Dec     9 14:45:34 1990  Michael Tiemann  (tiemann at cygnus.com)
  1668.  
  1669.     * cplus-class.c (propagate_basetype_offsets): Take effect on ASSOC
  1670.     before recursive calling.
  1671.     (finish_struct): Call `layout_decl' with zero for KNOWN_ALIGN
  1672.     when laying out TYPE_DECL.
  1673.     * cplus-tree.c (assoc_value): Change recursion condition to compare
  1674.     ASSOC_VALUE (assoc) against TYPE_MAIN_VARIANT (type) instead of just
  1675.     against type.
  1676.  
  1677. Sat Dec     8 10:40:00 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1678.  
  1679.     * m88k.md (attributes): Reorganize and include a block diagram.
  1680.     Make better use of defaults.
  1681.     * m88k.md (peephole), out-m88k.c, tm-m88k.h (short_branch): Add
  1682.     the sparc peepholes for changing bsr/br into bsr.n/addu or
  1683.     bsr.n/subu.  Install the length attribute for this.  Requires the
  1684.     use of `def' to accomodate broken assemblers in the bsr.n/addu
  1685.     case.
  1686.  
  1687. Fri Dec     7 06:12:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1688.  
  1689.     * reorg.c (find_end_label): Increment usage count of label we return
  1690.     so we know it won't go away.
  1691.     (dbr_schedule): Decrement count of end label and delete it if dead.
  1692.  
  1693. Wed Dec     5 17:36:23 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1694.  
  1695.     * m88k.md: Add instruction attributes for scheduling and delay
  1696.     slot information.
  1697.     * m88k.md (addsi pattern): Adding large constants does arise.
  1698.     (udivsi pattern): Wrong predicate.
  1699.     * tm-m88k.h, out-m88k.c (NOTICE_UPDATE_CC): Do so using
  1700.     attributes.
  1701.  
  1702.     * make-m88k, make-m88kdgux: Say how to create m88k-trace.asm.
  1703.  
  1704. Wed Dec     5 13:52:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1705.  
  1706.     * optabs.c (expand_binop): Support insn_before == 0.
  1707.  
  1708.     * function.c (optimize_bit_field): Fix wrong arg to validate_change.
  1709.  
  1710.     * Makefile (includes): Export LIB.
  1711.  
  1712. Wed Dec     5 13:31:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1713.  
  1714.     * combine.c (try_combine): Don't discard CLOBBERs from an insn
  1715.     with ASM_OPERANDS.
  1716.  
  1717. Tue Dec     4 16:12:21 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1718.  
  1719.     * tm-m88k.h, out-m88k.c, m88k.md: More cleanups: introduce
  1720.     POWER_OF_2 for tests (x && (x & (x-1) == 0); rename predicate
  1721.     functions *_p instead of *_operand; cleanup addsi3 insns; simplify
  1722.     udivsi3 insns; simplify memory shift insns; make LOW_SUM and HIGH
  1723.     SImode instead of VOIDmode; add a predicate to the increment and
  1724.     test peephole insn; deal with setting SFmode to zero; delete bogus
  1725.     pattern for divide-by-power-of-2.
  1726.     * make-m88k, make-m88kdgux: dg88k-trace.asm is now m88k-trace.asm.
  1727.     Move movstr-m88k.sh to config/m88k-movstr.sh.
  1728.  
  1729. Mon Dec     3 19:08:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1730.  
  1731.     * Makefile.in (gnulib2.ready): New target.
  1732.     (stamp-gnulib2): Depend on that.
  1733.     Avoids recompiling gnulib2 each time cc1 changes.
  1734.  
  1735. Mon Dec     3 16:17:56 1990  Tom Wood  (wood at dg-rtp.dg.com)
  1736.  
  1737.     * tm-m88kdgux.h, xm-m88kdgux.h (SEPARATE_AUX_OUTPUT): Should be in
  1738.     xm-m88kdgux.h.
  1739.     * tm-m88k.h, out-m88k.c, m88k.md: Eliminated the fixed literal
  1740.     synthesis register.  Reworked the addressing method to be like the
  1741.     sparc (uses HIGH and LO_SUM).  Numerous cleanups.  These changes
  1742.     are based on work done by Steve Chamberlain (steve@cygnus).
  1743.     * tm-m88k.h, out-m88k.c (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER):
  1744.     Implemented.
  1745.  
  1746. Mon Dec     3 15:19:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1747.  
  1748.     * cccp.c (special_symbol): Use time_t as type of t.
  1749.  
  1750.     * m88k-movstr.sh, m88k-trace.asm, va-m88k.h: New files.
  1751.  
  1752.     * gcc.c: Don't define R_OK, etc. if already defined.
  1753.  
  1754.     * out-sparc.c (finalize_pic, emit_move_sequence, output_arc_profiler):
  1755.     Finish change to emit HIGH and LO_SUM as Pmode instead of VOIDmode.
  1756.  
  1757. Sun Dec     2 22:13:53 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1758.  
  1759.     * config.gcc (tower): New alternative.
  1760.     (mips-news): Adapt for version 2.
  1761.  
  1762.     * tm-tower.h, tm-tower-as.h, xm-tower.h: New files.
  1763.  
  1764. Sun Dec     2 17:47:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1765.  
  1766.     * reload1.c (eliminate_regs, case ASM_OPERANDS): Fix typo in testing
  1767.     for changed vector.
  1768.  
  1769.     * out-rs6000.c (output_epilogue): Fix typo restoring general registers.
  1770.     (print_operand): Add new option %H.
  1771.     * rs6000.md: Add (clobber (reg:SI 64)) to many patterns even though
  1772.     they don't clobber MQ to allow combining to work well.    This will be
  1773.     removed once combine knows how to add clobbers when required.
  1774.     Change patterns to reflect new canonicalization rules.
  1775.     Where we have (and (xshift)), add patterns for (zero_extend (xshift)).
  1776.     (andsi3, xorsi3): Fix bug in case where two insns are needed.
  1777.     (moveti): Don't call change_address when in reload.
  1778.     (sign_extend): Add patterns for sign extend preceeded or followed by
  1779.     one of the shifts it will do.  Use %H to output the merged shift.
  1780.  
  1781.     * out-romp.c (print_operand): Allow exact_log2 result to be zero.
  1782.     * romp.md: Likewise.
  1783.     * tm-romp.h (CONST_OK_FOR_LETTER): Likewise.
  1784.  
  1785.     * a29k.md (type attribute): Add types for floating-point insns.
  1786.     (in_delay_slot attribute): Update to allow for new types.
  1787.     (function_unit definitions): Add definitions for floating-point units.
  1788.     (andcb*3): Delete obsolete names.
  1789.     (convert insn): Use register_operand instead of gen_reg_operand for
  1790.     floating-point operand.
  1791.     (cpeq, feq, deq, etc): New patterns.
  1792.     (floating-point arithmetic): Add support for 29050 insns and
  1793.     accumulators; indicate function unit usage.
  1794.     (ior/and patterns): Put NOT as second operand.
  1795.     (orn insn): New, for 29050.
  1796.     (load patterns): If using match_operator, make it the highest operand
  1797.     number.
  1798.     (loadm insns): Add workaround for rev A1 bug on 29050.
  1799.     (negsf2, negdf2): Don't use XOR to negate on 29050.
  1800.     (movsf, movdf): Add support for accumulators on 29050.
  1801.     (movsi, movhi, movqi): No need to support special->special copies.
  1802.     Support consthz insn on 29050.
  1803.     (compare, scc, and branch insns): Rework to not use cc0.  Use a pseudo
  1804.     register instead.  Compare doesn't generate any code, but merely
  1805.     saves the operands.  scc and branch then emit the appropriate compare
  1806.     and jump (if branch) insns.
  1807.     (tstsi): Delete pattern; not used when no cc0.
  1808.     (peepholes): Remove peepholes to convert jumps to scc insns; now
  1809.     done in jump.c.
  1810.     * out-a29k.c (a29k_compare_*): New variables.
  1811.     (long_const_operand): Anything with low-order 16 bits zero is not a
  1812.     long constant on the 29050.
  1813.     (accum_reg_operand): New function.
  1814.     (gen_reg_operand): Returns false for accumulator registers.
  1815.     (output_operand): Allow accumulators.
  1816.     (ne_comparison_p, fp_comparison_p, return_peep_operand): Deleted.
  1817.     (fp_comparison_operator, branch_operator): New functions.
  1818.     (output_compare): Deleted.
  1819.     (print_operand): Change meaning of %b and %B.
  1820.     Add new code %J.
  1821.     * tm-a29k.h (TARGET_VERSION): Say if compiling for 29050.
  1822.     (TARGET_FLAGS): Add -29000 to turn off support for 29050; this is
  1823.     still the default.
  1824.     (various register macros): Add support for the floating-point
  1825.     accumulators on the 29050.
  1826.     (CONST_OK_FOR_LETTER): Use 'O' for a constant that can be set using
  1827.     conthz on the 29050; keep old definition for 29000.
  1828.     (STORE_FLAG_VALUE): Now 0x80000000.
  1829.     (ASM_FILE_START): Write ".cputype 29050" when compiling for 29050.
  1830.  
  1831.     * combine.c (subst): Put NOT, NEG, MULT, PLUS, and MINUS as the
  1832.     first operand of commutative operations.  Note that NOT used to be
  1833.     put as the second operand but it has always been assumed that 
  1834.     MULT would be the first operand in address expressions, so we have
  1835.     to change the previous canonicalization.  This is possible now that we
  1836.     have eliminated the andcbm3 operations.
  1837.     * i860.md (andnot): Remove obsolete andcbsi3 name and place NOT
  1838.     as first operand.
  1839.     * m68k.md (fpm*): Delete patterns with MULT as second operand and
  1840.     use "@" construct when possible.
  1841.     * m88k.md (and.c, ior.c): Remove obsolete andcbsi3 and iorcbsi3 names.
  1842.     Delete patterns with NOT as second operand.
  1843.     (xor.c): Rewrite in new canonical form.
  1844.     * mips.md (nor): Rewrite in new canonical form.
  1845.     * pyr.md (bicw): Remove pattern with NOT as first operand, removing
  1846.     obsolete name andcbsi3 in the process.
  1847.     * sparc.md: Remove patterns with NOT as first operand.
  1848.     Remove obsolete names andcbsi3, iorcb3, and xorcbsi3.
  1849.     Rewrite xnor into new canonicalized form.
  1850.     Add mode to HIGH and LO_SUM operations.
  1851.     * vax.md (bic*): Remove obsolete andcbm3 names.
  1852.     Put NOT as first operand when both generating and recognizing RTL.
  1853.     (jlbc): Rewrite with NOT as first operand.
  1854.  
  1855. Sun Dec     2 17:08:16 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1856.  
  1857.     * m68k.md (recognizer for casesi_2): Handle ASM_RETURN_CASE_JUMP.
  1858.  
  1859.     * stddef.h (ptrdiff_t): Prevent definition, as with size_t.
  1860.  
  1861. Sat Dec     1 16:31:30 1990  Ron Guilmette     (rfg at ncd.com)
  1862.  
  1863.     * dwarfout.c (lookup_filename, dwarfout_finalize): changed from
  1864.     maintaining a linked list of filename entries to maintaining an
  1865.     (expandable) array of filename entries instead.     Also, changed
  1866.     code so that *all* filename strings are output (to the .files
  1867.     section of the asm file) in one swell foop just as the asm file is
  1868.     being finalized rather than writing out new filenames one-by-one
  1869.     as they arise (as previously). This circumvents a problem caused
  1870.     by rfg's naive assumption that assemblers kept a stack of prior
  1871.     section names (of depth > 1) which could be successively popped
  1872.     via multiple `previous' directives.  For some assemblers, the
  1873.     depth of the stack is only 1 and they can get confused if you do
  1874.     two (or more) `previous' directives in a row.  Anyway, it is no
  1875.     longer either necessary or useful to do that, so who cares.
  1876.  
  1877.     * dwarfout.c: added code to output newlines to the asm file just
  1878.     prior to each and every change of section (for better readability
  1879.     of the asm files).
  1880.  
  1881.     * dwarfout.c: changed code so that if DWARF_DESCRIBE_USED_EXTERNS
  1882.     is defined, it forces DWARF_LOCATION_ATTRIBUTES to also be defined.
  1883.  
  1884.     * dwarfout.c: changed code so that if DWARF_LOCATION_ATTRIBUTES
  1885.     is defined, it forces DWARF_DESCRIBE_FILES to be defined (to `1').
  1886.  
  1887.     * dwarfout.c: changed code so that if DWARF_DESCRIBE_FILES is not
  1888.     already defined (in the user's tm.h file) it will automatically be
  1889.     defined (by default) to `1'.  Also changed all instances of
  1890.     `#ifdef DWARF_DESCRIBE_FILES' to `#if DWARF_DESCRIBE_FILES'.
  1891.     The user must now intentionally *disable* this feature (by
  1892.     defining DWARF_DESCRIBE_FILES to `0' in his tm.h file) if he
  1893.     wishes to have the additional information about files suppressed.
  1894.  
  1895.     * dwarfout.c: changed comments relating to optional defines for
  1896.     extended GNU DWARF features to include more information and to
  1897.     add some additional clarity.
  1898.  
  1899. Sat Dec     1 16:00:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1900.  
  1901.     * combine.c (subst): Call reverse_condition instead of
  1902.     reverse_comparison.
  1903.     We are allowed to reverse floating-point EQ and NE comparisons.
  1904.  
  1905.     * combine.c (subst): Call simplify_and_const_int for all AND
  1906.     and ZERO_EXTEND cases and all cases where we make one of them.
  1907.     Remove all other code in AND and ZERO_EXTEND cases.
  1908.     (simplify_and_const_int): Rewritten to follow a consistent model
  1909.     of tracking what AND's need to be done and which bits are not
  1910.     significant.  Consistently try a ZERO_EXTEND for all cases where
  1911.     the result is an AND with a mode-wide mask.  Move all remaining
  1912.     cases from AND any ZERO_EXTEND cases from subst.
  1913.  
  1914. Sat Dec     1 09:13:17 1990  Michael Tiemann  (tiemann at cygnus.com)
  1915.  
  1916.     * cplus-tree.h (lang_type): Remove any_assigns_this,
  1917.     none_assigns_this from type_flags.
  1918.     * cplus-decl2.c (get_temp_name): If the initializer is a
  1919.     pointer to zero, cache it in EMPTY_TABLE.
  1920.     (finish_builtin_type): New function, to factor common code
  1921.     arising from building internal structures.
  1922.     * cplus-decl.c (init_decl_processing): Call it.
  1923.  
  1924. Fri Nov 30 10:39:04 1990  Michael Tiemann  (tiemann at cygnus.com)
  1925.  
  1926.     * cplus-decl.c (finish_function): Use CLASSTYPE_ASM_WRITTEN instead
  1927.     of TREE_USED to indicate that we need debugging info for
  1928.     TTYPE.
  1929.     Note that nobody ever sets EXTENDED_DBX_DEBUG.    For now,
  1930.     change to test DBX_DEBUG.  For later, change everything to
  1931.     key off of EXTENDED_DBX_DEBUG.    
  1932.     Also, set `warn_return_type' to one always, since this warning
  1933.     is too valuable to lose.
  1934.     * cplus-tree.c (lang_output_debug_info): Don't test TREE_USED.    That
  1935.     field is already used by other routines, and we have all we need now
  1936.     in CLASSTYPE_ASM_WRITTEN.
  1937.     * cplus-dbxout.c (dbxout_type_method_1): Handle const,
  1938.     volatile, and const/volatile member functions.
  1939.  
  1940. Fri Nov 30 04:51:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  1941.  
  1942.     * combine.c (reg_last_set_value): New variable.
  1943.     (combine_instructions): Allocate and initialize it.
  1944.     (record_dead_and_set_regs): Set reg_last_value to source
  1945.     of assignment; clear it for a CLOBBER or partial assignment.
  1946.     (subst): Use reg_last_set_value instead of interpreting the
  1947.     insn in reg_last_set as if it was a single SET.
  1948.  
  1949.     * combine.c (gen_lowpart_for_combine): Call gen_lowpart for CONST_INT.
  1950.     When making a new MEM, copy MEM_VOLATILE_P and MEM_IN_STRUCT_P.
  1951.     If cannot recognize the argument, just form a SUBREG; usually,
  1952.     it won't be recognized, but sometimes will allow further
  1953.     simplifications.
  1954.  
  1955.     * regclass.c (reg_scan): Save size of uid map; reallocate if
  1956.     we have more registers than we allocated.
  1957.     Leave some extra room in map.
  1958.  
  1959.     * stmt.c (emit_case_nodes): Supply missing argument to emit_cmp_insn.
  1960.  
  1961.     * fold-const.c (decode_field_reference): Add missing arg declaration.
  1962.  
  1963.     * expmed.c (store_bit_field): Add missing last argument to
  1964.     recursive call.
  1965.  
  1966.     * cse.c (cse_insn): Remove extra arg passed to rtx_equal_p.
  1967.  
  1968.     * Makefile.in (proto): Make protoize.1 and unprotoize.1.
  1969.     (protoize.1, unprotoize.1): New targets.
  1970.     (install_man): Install protoize.1 and unprotoize.1./
  1971.     * proto-unproto.1: New file.
  1972.  
  1973.     * loop.c (scan_loop): Properly set SET_SRC in movables entry for
  1974.     MOVE_INSN == 1 and CONSEC > 0 case.
  1975.     (force_movables): Don't look at SET_SRC when CONSEC > 0.
  1976.  
  1977.     * expr.c (expand_expr, case ARRAY_REF): Ensure TYPE_POINTER_TO
  1978.     gets initialized after we build a variant type.
  1979.  
  1980. Fri Nov 30 00:35:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1981.  
  1982.     * m68k.md (ashr of 16 to 24 bits): Use extl, not extw.
  1983.  
  1984. Thu Nov 29 21:41:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  1985.  
  1986.     * tm-vax.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros.
  1987.  
  1988.     * gcc.c (add_prefix): Add new element, don't replace old first elt.
  1989.  
  1990.     * dwarfout.c (dwarfout_finalize): Go to DEBUG_SECTION first thing.
  1991.  
  1992. Thu Nov 29 17:50:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
  1993.  
  1994.     * stmt.c (expand_end_loop): Stop looking for branch to the loop
  1995.     exit when we hit a NOTE_INSN_BLOCK_{BEG,END}.
  1996.     * jump.c (duplicate_loop_exit_test): Likewise.
  1997.     Also, only copy line-number notes.
  1998.  
  1999.     * integrate.c (expand_inline_function): Call expand_expr for the
  2000.     arguments before allocating maps that are based on register numbers.
  2001.  
  2002.     * loop.c (loop_reg_used_before_p): Accept new argument, SET, to
  2003.     indicate which part of INSN is setting the relevant register.
  2004.     (scan_loop): Pass new arg to loop_reg_used_before_p.
  2005.  
  2006.     * function.c (optimize_bit_field): Don't assume ZERO_EXTRACT can
  2007.     be replaced by MEM; use validate_change to check.
  2008.  
  2009.     * reload.c (find_reloads_toplev): Add missing arg to recursive call.
  2010.  
  2011.     * calls.c (expand_call): Correct two cases of missing mode to gen_rtx.
  2012.  
  2013. Thu Nov 29 02:42:35 1990  Michael Tiemann  (tiemann at cygnus.com)
  2014.  
  2015.     * version.c: Bump version number to 1.90.04.
  2016.  
  2017.     * toplev.c (rest_of_compilation): If FLAG_PIC is nonzero, emit any
  2018.     special PIC code once we start really compiling a function (i.e., we
  2019.     are not in an inline function).     Inline functions cannot
  2020.     meaningfully hold PIC code because there is no notion of position
  2021.     independence in code that isn't really being written down.
  2022.  
  2023.     * Makefile.in: Don't build cplus-cadillac.o by default.     Build
  2024.     cplus-edsel.o instead.    Until Lucid frees their programming
  2025.     environment, their Cadillac will always be an Edsel to GNUsers.
  2026.  
  2027.     * stmt.c (fixup_gotos): Change loop to run in two passes so that
  2028.     cleanups don't experience a race condition.
  2029.     (expand_cleanups): Replace Nov 5 word-around with consistency check.
  2030.     The same cleanups should never be run twice.
  2031.  
  2032.     * cplus-decl.c (lang_{init,finish}): Move these functions...
  2033.     cplus-lex.c: ...to here.  Also, make change to lang_init analogous
  2034.     to Nov 27 change for C compiler.
  2035.  
  2036.     * cplus-decl.c (pushdecl): Don't warn about static/extern conflicts
  2037.     if X is a TYPE_DECL.
  2038.     (build_enumerator): Certain CONST_INT nodes cannot be coopted to be
  2039.     the constant for enumerator.  Mark them as non-shareable and don't
  2040.     coopt them.
  2041.  
  2042.     * cplus-decl.c (lang_{init,finish}): Declare these to be void
  2043.     functions to match new tree.h.
  2044.  
  2045. Wed Nov 28 18:48:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2046.  
  2047.     * reload1.c (eliminate_regs): Convert (subreg (mem)) to (mem) when
  2048.     not a paradoxical SUBREG.
  2049.  
  2050. Wed Nov 28 17:15:43 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2051.  
  2052.     * emit-rtl.c (gen_label_rtx): Clear LABEL_NAME via gen_rtx.
  2053.  
  2054. Tue Nov 27 21:54:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2055.  
  2056.     * varasm.c (assemble_external): Never write a .extern for a static
  2057.     name.
  2058.  
  2059.     * recog.c (validate_replace_rtx_1): Handle making a SUBREG of a MEM
  2060.     by trying a new MEM.
  2061.  
  2062. Tue Nov 27 11:54:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2063.  
  2064.     * c-lang.c, objc-action.c: Include input.h.
  2065.     (lang_init): Call check_newline here.
  2066.     * toplev.c (compile_file): Not here.
  2067.     Call lang_init after setting input_filename.
  2068.  
  2069.     * tree.h: Declare numerous functions that the front end must provide.
  2070.  
  2071.     * rtl.h (LABEL_REFS): Use operand 5, same as LABEL_NUSES.
  2072.  
  2073.     * toplev.c (warn_return_type, W_options): Handle -Wreturn-type here.
  2074.     * c-decl.c: Not here.
  2075.     * flags.h: Declare it here, not in c-tree.h.
  2076.  
  2077.     * gcc.c (pexecute): Wait and retry if fork fails.
  2078.  
  2079.     * expr.c (do_jump): Pass all args to get_inner_reference.
  2080.     (expand_assignment): Fix typo in arg to get_inner_reference.
  2081.  
  2082.     * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Don't alter if already set.
  2083.  
  2084. Mon Nov 26 18:28:51 1990  Michael I Bushnell  (mib at churchy.ai.mit.edu)
  2085.  
  2086.     * cccp.c (handle_directive): Do backslash-newlines inside of
  2087.     strings.
  2088.  
  2089. Mon Nov 26 15:39:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2090.  
  2091.     * cccp.c (main): Handle -w.
  2092.     (warning): Do nothing if -w.
  2093.     * gcc.c (compilers): Pass -w to cpp.
  2094.  
  2095.     * c-decl.c (grokdeclarator): Don't discard arg types
  2096.     for prototype even if traditional.
  2097.  
  2098. Sun Nov 25 20:52:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2099.  
  2100.     * protoize.c: Undef CHAR_BIT, etc, before including limits.h.
  2101.  
  2102.     * reload1.c (old_asm_operands_vec, new_asm_operands_vec): 
  2103.     Type should point to a vector.
  2104.     (Eliminate_regs): For asm_operands, copy the vector properly.
  2105.  
  2106. Sun Nov 25 20:35:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu)
  2107.  
  2108.     * jump.c (jump_optimize): Fix typo in stack push combining code.
  2109.  
  2110.     * reload1.c (eliminate_regs): Ensure we share operands 3 and 4
  2111.     of ASM_OPERANDS operations if they were originally shared.
  2112.     Copy all rtx flags when making a new MEM.
  2113.     (eliminate_regs_in_insn): Initialize for ASM_OPERANDS sharing check.
  2114.  
  2115. Sun Nov 25 16:37:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2116.  
  2117.     * Makefile.in (stamp-gnulib2): Don't depend on gnulib2-indirect.
  2118.  
  2119.     * gcc.c (do_spec_1): Handle %W{...}.
  2120.     (default_compilers): Use %W{...} when passing -o option.
  2121.  
  2122. Sat Nov 24 16:39:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2123.  
  2124.     * cplus-lex.c (init_lex, do_pending_inlines, reinit_lang_specific):
  2125.     Add conditionals for __GNU_LIBRARY__.
  2126.  
  2127. Thu Nov 22 13:48:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2128.  
  2129.     * fold-const.c (optimize_bit_field_compare): Pass additional
  2130.     arg to get_inner_reference; it gets set if something was volatile.
  2131.     (decode_field_reference): New arg PVOLATILEP; passed to
  2132.     get_inner_reference.
  2133.     (merge_component_references): Add pointer to place to store if
  2134.     something is volatile to calls to decode_field_reference; don't
  2135.     do anything if it gets set (this may be very conservative).
  2136.  
  2137.     * stmt.c (expand_end_loop): Skip initial CODE_LABEL at start of
  2138.     loop when looking for qualified conditional exit.
  2139.  
  2140.     * reload.c (push_reload): If (subreg:M1 (reg:M2 ....)) and we
  2141.     have trouble access the register in M1, reload the reg, not subreg.
  2142.     Fix typo in testing for memory.
  2143.     (reload): Force reload of the operand in the above cases.
  2144.  
  2145. Wed Nov 21 17:39:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2146.  
  2147.     * loop.c (strength_reduce, combine_givs): Don't penalize
  2148.     non-replaceable givs unless they are user variables; temporaries
  2149.     are probably dead even though we can't prove it.
  2150.  
  2151.     * integrate.c (save_constants): Don't get confused by looking
  2152.     inside CONST_DOUBLE_MEM.
  2153.     Call recursively on what get_pool_constant returned, in case it
  2154.     was itself the address of a pool constant.
  2155.     (copy_for_inline, copy_rtx_and_substitute, restore_constants):
  2156.     Remake CONST_DOUBLE so it gets chained in correctly and we don't use
  2157.     obsolete CONST_DOUBLE_MEM values.  Call recusively on operand we are
  2158.     about to pass to force_const_mem; it might have been a case of a
  2159.     constant value being an address of another constant.
  2160.  
  2161.     * loop.c (find_mem_givs): Don't make a DEST_ADDR giv with mult_val == 1
  2162.     and add_val == 0.
  2163.     (maybe_eliminate_biv_1): Turn off elimination in (compare biv1 biv2)
  2164.     cases; they have problems.
  2165.  
  2166. Wed Nov 21 16:06:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2167.  
  2168.     * dwarfout.c (location_attribute): Offset for bitfields is special.
  2169.  
  2170.     * expr.c (get_inner_reference): New arg pvolatilep.
  2171.     (expand_expr, expand_assignment): Use to set MEM_VOLATILE_P.
  2172.  
  2173. Wed Nov 21 10:34:25 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2174.  
  2175.     * stor-layout.c (layout_decl): Record whether a FIELD_DECL is a
  2176.     bit-field and if so its original type.
  2177.     * tree.h (DECL_BIT_FIELD_TYPE): New.
  2178.     * dbxout.c (dbxout_type): Use DECL_BIT_FIELD_TYPE.
  2179.     * dwarfout.c (output_member_die, bit_offset_attribute,
  2180.     bit_size_attribute, member_declared_type): Use DECL_BIT_FIELD_TYPE.
  2181.     * sdbout.c (sdbout_one_type): Use DECL_BIT_FIELD_TYPE.
  2182.  
  2183.     * sdbout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): New
  2184.     interfaces to compute the location of arguments and automatic
  2185.     variables.
  2186.     * dbxout.c (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Likewise.
  2187.  
  2188.     * dbxout.c (dbxout_parms): Describe a parameter passed in
  2189.     registers but living on the stack as N_PSYM rather than N_LSYM.
  2190.     These are typically arg_pointer based locations.
  2191.  
  2192.     * out-m88k.c (m88k_debugger_offset): New function.
  2193.     * tm-m88k.h (DEBUGGER_ARG_OFFSET, DEBUGGER_AUTO_OFFSET): Replaces
  2194.     SDB_AUTO_NORMALIZE_OFFSET.
  2195.     * tm-m88k.h (STACK_BOUNDARY): Update to 16 byte aligned stacks.
  2196.  
  2197. Tue Nov 20 23:48:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2198.  
  2199.     * dwarfout.c (dwarfout_init): Set stack depth to 1 at start.
  2200.     (output_padded_null_die): New function.
  2201.     (dwarfout_finalize): Use that to ensure length divisible by 4.
  2202.  
  2203.     * ns32k.md (addsi3): Don't use `addr' for very large displacements.
  2204.  
  2205. Tue Nov 20 05:48:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2206.  
  2207.     * jump.c (can_reverse_comparison_p): It is safe to reverse an EQ
  2208.     or NE comparison, even if IEEE floating-point.
  2209.  
  2210.     * integrate.h (struct inline_remap): const_*_map now maps registers
  2211.     in calling function, not called function.
  2212.     Add fields to save values recorded from SETs.
  2213.     * integrate.c: Now includes insn-config.h and real.h.
  2214.     (expand_inline_function): New meaning for const_*_map.
  2215.     Don't fill in constant equivalences here; now done in try_constants.
  2216.     Show CALL_INSNs potentialy clobber all hard registers since we
  2217.     now record equivalences for hard registers.
  2218.     (try_constants): No longer need original RTL; all callers changed.
  2219.     Call note_stores to kill any known equivalences for registers changed.
  2220.     Record equivalences for PC, CC0, and registers set by this insn.
  2221.     (subst_constants): No longer need original RTL; all callers changed.
  2222.     Reflect new meaning of const_*_map.
  2223.     Perform more extensive constant folding, basically a subset of
  2224.     fold_rtx in cse.c; specifically, fold the result of comparison
  2225.     operations and IF_THEN_ELSE operations.
  2226.     Record the constant equivalences of SETs, if any.
  2227.     (try_fold_condition, const_equiv, fold_out_const_cc0): Deleted.
  2228.     * Makefile.in (integrate.o): Now includes insn-config.h and real.h.
  2229.  
  2230. Sat Nov 17 07:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2231.  
  2232.     * local-alloc.c (local_alloc): Don't allocate a reg that wants a
  2233.     class that has only one register; let global-alloc do it so that it
  2234.     can be given a GENERAL_REG if reload needs a spill reg of that class.
  2235.  
  2236.     * regclass.c (regclass, reg_class_record): Count savings in loops as
  2237.     being greater the same way we adjust reg_n_refs for loops in flow.c.
  2238.  
  2239.     * expmed.c (store_bit_field, extract_bit_field): Remove change of
  2240.     Oct 16; it causes problems with long long bit fields.
  2241.  
  2242.     * rtlanal.c (reg_overlap_mentioned_p): If called with a constant,
  2243.     return zero.  If called with a MEM, return 1 iff the second arg
  2244.     contains a MEM. 
  2245.     * reload.c (push_reload): Call reg_overlap_mentioned_p only if OUT
  2246.     is a MEM and then pass it the address of OUT.
  2247.  
  2248.     * cse.c (cse_insn): Refine when SRC_EQV, SRC, and DEST are added
  2249.     to the hash table.  SRC_EQV is not added to the hash table if it
  2250.     is volatile or equal to DEST and similarly for SRC.  DEST is not
  2251.     added to the hash table unless either SRC_EQV or SRC is.
  2252.  
  2253. Thu Nov 15 23:43:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2254.  
  2255.     * c-typeck.c (convert_for_assignment): Change warning message.
  2256.  
  2257. Thu Nov 15 18:44:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2258.  
  2259.     * stmt.c (expand_end_loop): Generalize code to look for more
  2260.     than one branch to the exit and include unconditional branches
  2261.     to the exit; move the whole range to the end of the loop.
  2262.     * jump.c (duplicate_loop_exit_test): New function.
  2263.     (jump_optimize): Call it.
  2264.     Don't allocate jump_chain until we have finished deleting dead code.
  2265.     Leave some more room in jump_chain.
  2266.     (simplejump_p): Reject if not JUMP_INSN.
  2267.     (delete_insn): If simplejump_p, remove from jump chain.
  2268.     * loop.c (loop_skip_over): Deleted.
  2269.     (scan_loop): No longer call it.
  2270.     * cse.c (predecide_loop_entry): Deleted.
  2271.     (cse_basic_block): No longer call it.
  2272.  
  2273. Thu Nov 15 18:00:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2274.  
  2275.     * math-68881.h (HUGE_VAL): Add extra braces for Sun.
  2276.  
  2277.     * stor-layout.c (layout_type): Don't let array have less
  2278.     alignment than its mode calls for.
  2279.  
  2280. Thu Nov 15 13:05:30 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2281.  
  2282.     * sdbout.c (sdbout_parms, sdbout_reg_parms): Reimplemented based
  2283.     on dbxout_parms and dbxout_reg_parms.
  2284.  
  2285. Wed Nov 14 08:48:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2286.  
  2287.     * emit-rtl.c (emit_...): All of these now return the last insn
  2288.     emitted; previously some of them returned void.
  2289.     (emit_barrier_before): New function, similar to others.
  2290.     * rtl.h: All emit_... functions now return an rtx; reorder so
  2291.     declarations are in the same order as definitions in emit-rtl.c.
  2292.  
  2293.     * reorg.c (steal_delay_list_from_{target,fallthrough}): Add missing
  2294.     test when checking candidate insn for resource conflicts.
  2295.  
  2296. Wed Nov 14 07:08:19 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2297.  
  2298.     * c-parse.y (pushlevel, compstmt): Place a line note at the first
  2299.     token beginning a block and at the close brace ending a block.
  2300.     These are the conventional locations for SDB and DWARF debugging
  2301.     information.
  2302.  
  2303. Tue Nov 13 18:16:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2304.  
  2305.     * function.c (assign_stack_local): If alignment not specified
  2306.     and not BLKmode, use at least word alignment.
  2307.     (assign_outer_stack_local): Likewise.
  2308.  
  2309.     * sparc.md: Turn off patterns that specify no_ov or CC_NO_OVERFLOW.
  2310.  
  2311.     * dwarfout.c (file_attribute): Fix arg to ASM_OUTPUT_DWARF_ATTRIBUTE.
  2312.     (AT_line, AT_file): New definitions.
  2313.  
  2314.     * out-i860.c (output_block_move): Move .Lm%3 down one insn.
  2315.  
  2316.     * c-decl.c (grokdeclarator): -funsigned-bit-field doesn't affect enums.
  2317.  
  2318. Tue Nov 13 09:28:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2319.  
  2320.     * gcc.c (default_compilers): Report an error if -C is used without
  2321.     -E.  Pass -H to cpp.
  2322.  
  2323.     * sdbout.c (plain_type, plain_type1): save and output the
  2324.     rightmost array dimensions.
  2325.  
  2326.     * syms.h (enum sdb_type): Add T_VOID, equal in value to T_ARG.
  2327.     * sdbout.c (plain_type_1): Use T_VOID for VOID_TYPE and define it
  2328.     to be T_INT if not present in <syms.h>.
  2329.  
  2330.     * sdbout.c (sdbout_toplevel_data): Use abort rather than fatal.
  2331.  
  2332. Mon Nov 12 08:49:33 1990  Michael Tiemann  (tiemann at cygnus.com)
  2333.  
  2334.     * expr.c (compare): Fix use of GET_MODE_CLASS so we don't abort if
  2335.     MODE is VOIDmode.
  2336.     * optabs.c (init_optab): Call `xmalloc' instead of `malloc'.
  2337.  
  2338.     * out-sparc.c (hard_regno_mode_ok): Change initialization of array
  2339.     to match behavior of Nov 11 change for complex modes.
  2340.  
  2341.     * jump.c (delete_labelref_insn): Chase all LOG_LINKS of insn to try
  2342.     to delete references to LABEL.    This is needed for machines like
  2343.     SPARC which use multiple insns to get the value of LABEL into a
  2344.     register.
  2345.  
  2346. Mon Nov 12 16:07:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2347.  
  2348.     * machmode.def (SCmode, ...): Class is MODE_COMPLEX_FLOAT.
  2349.  
  2350. Sun Nov 11 00:27:34 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2351.  
  2352.     * tm-i860.h (HARD_REGNO_MODE_OK): Handle values more than 2 regs long.
  2353.     * tm-m68k.h (HARD_REGNO_MODE_OK): Likewise, for d7/a0 boundary.
  2354.     * tm-spur.h (HARD_REGNO_MODE_OK): Likewise, for 31/32 boundary.
  2355.     * tm-*.h (HARD_REGNO_NREGS): Use GET_MODE_NUNITS to handle
  2356.     complex values in fp registers on machines where one reg holds a DF.
  2357.  
  2358.     * sdbout.c (sdbout_one_type): Do nothing for incomplete type.
  2359.  
  2360.     * c-decl.c (duplicate_decls): Warning only when redefining built-in fn.
  2361.  
  2362.     * c-decl.c (init_decl_processing): Use sizetype, not unsigned long,
  2363.     in prototypes for memcpy and memcmp.
  2364.  
  2365.     * c-parse.y (component_decl): Don't read the semicolon here.
  2366.  
  2367.     * toplev.c (compile_file): Reverse top-level decls before output.
  2368.  
  2369. Sat Nov 10 22:27:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2370.  
  2371.     * stor-layout.c (layout_type): Use MODE_COMPLEX_{INT,FLOAT}.
  2372.  
  2373. Sat Nov 10 20:34:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2374.  
  2375.     * reload.c: Provide a default definition of REGISTER_MOVE_COST.
  2376.  
  2377. Sat Nov 10 01:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
  2378.  
  2379.     * cplus-init.c (emit_base_init): Don't use CLASSTYPE_ASSOC as a list
  2380.     of only immediate basetypes anymore.  Use `get_base_distance' to
  2381.     check whether a type is an immediate basetype or not.
  2382.  
  2383.     * stmt.c (expand_return): Don't emit a USE if VAL is a
  2384.     pseudo-register.
  2385.  
  2386.     * integrate.c (function_cannot_inline_p): Call to strcmp for
  2387.     "__builtin_va_alist" must use IDENTIFIER_POINTER not
  2388.     DECL_NAME.
  2389.  
  2390.     * genattrtab.c (check_attr_test): Use XSTR macro instead of
  2391.     XEXP macro in places where strings are used.
  2392.  
  2393.     * tree.c (type_hash_lookup): Have to check TYPE_DOMAIN for non-zero
  2394.     before comparing the equality of the possible lists.
  2395.  
  2396.     * cplus-typeck.c (build_c_cast): Check TREE_TYPE before checking
  2397.     that the TREE_TYPE is an OFFSET_TYPE.
  2398.  
  2399.     * cplus-typeck.c (c_expand_return): Use DECL_RESULT of
  2400.     current_function_decl instead of `result' since `result' might be
  2401.     set to zero.
  2402.  
  2403.     * cplus-decl.c (xref_tag): Fixed typo in setting
  2404.     TYPE_USES_COMPLEX_INHERITANCE.
  2405.  
  2406.     * cplus-tree.c (assoc_value): Changed interface to take COPYING
  2407.     parameter.
  2408.     * cplus-{class,init,search,tree}.c  All callers changed.
  2409.  
  2410.     * cplus-typeck.c (build_c_cast): Resolve OFFSET_REFs if the type we
  2411.     are converting to is not an OFFSET_TYPE.
  2412.  
  2413. Thu Nov     8 15:26:27 1990  Craig Burley    (burley at pogo.ai.mit.edu)
  2414.  
  2415.     * tm-*.h: Try to change HARD_REGNO_NREGS, HARD_REGNO_OK, and other
  2416.     macro defs to handle new complex type stuff.  Mostly guesswork; needs
  2417.     checking by people who really know each machine.
  2418.     * machmode.def (SCmode, DCmode, XCmode, TCmode): New complex modes.
  2419.     * machmode.h (GET_MODE_ALIGNMENT): New macro from stor-layout.c.
  2420.     * tree.c (build_complex_type): New function.
  2421.     * stor-layout.c (layout_type): Handle COMPLEX_TYPE.
  2422.     * expr.c (compare1, compare, move_block_to_reg, emit_push_insn):
  2423.     Change uses of GET_MODE_CLASS.
  2424.     * optabs.c (expand_binop, expand_twoval_binop, expand_unop):
  2425.     (emit_cmp_insn): Likewise.
  2426.  
  2427. Thu Nov     8 06:19:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2428.  
  2429.     * local-alloc.c (no_conflict_p): Initialize *WHERE_DEAD; previously
  2430.     uninitialized.
  2431.  
  2432. Thu Nov     8 01:08:45 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2433.  
  2434.     * c-parse.y (yylex): Size of wide STRING_CST counted terminator wrong.
  2435.  
  2436. Wed Nov     7 14:55:38 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2437.  
  2438.     * gnulib2.c (L_trampoline): Put it inside a dummy function.
  2439.  
  2440.     * enquire.c: Renamed from hard-params.c; new vers from steven@cwi.nl.
  2441.     Modified to undef CHAR_BIT, etc. if defined in stdio.h.
  2442.     * Makefile.in (enquire): Targets renamed.
  2443.     (enquire.o): Define NO_MEM.
  2444.  
  2445. Wed Nov     7 14:18:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2446.  
  2447.     * jump.c (invert_jump): If it is going to fail (i.e., redirect_jump
  2448.     fails), don't invert the jump.
  2449.  
  2450.     * expr.c (expand_expr, case COND_EXPR): Don't accept a hard register
  2451.     as a target if we are going to store into it before testing the
  2452.     condition because that evaluation may involve a subroutine call
  2453.     which might clobber it.
  2454.  
  2455.     * jump.c (delete_jump): reg_set_p should be called with PATTERN (insn).
  2456.     (thread_jumps): Add omitted last argument to rtx_equal_for_thread_p.
  2457.  
  2458.     * reload.c (find_reloads): Only skip insns which set one hard register
  2459.     to another if the cost of doing so is low;  if not, there may not be
  2460.     a single insn to do the copy and we may need a reload register.
  2461.  
  2462. Wed Nov     7 00:01:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2463.  
  2464.     * c-parse.y (component_decl_list): Allow missing semi at end.
  2465.  
  2466.     * loop.c (move_movables): When moving and deleting library call,
  2467.     don't be confused if an insn is deleted.
  2468.  
  2469. Tue Nov     6 20:49:57 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2470.  
  2471.     * tm-m68k.h (TRANSFER_TO_TRAMPOLINE): Fix asm syntax.
  2472.  
  2473.     * xm-iris.h (alloca): Delete redundant definition.
  2474.     * tm-iris.h (CPP_SPEC): Define variant symbols starting with _.
  2475.     Define __EXTENSIONS__.
  2476.  
  2477.     * config.gcc (editing .gdbinit): Search current dir, not just srcdir.
  2478.  
  2479. Tue Nov     6 22:24:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2480.  
  2481.     * expr.c (expand_expr, case COND_EXPR): Generate efficient code for
  2482.     A ? A : FOO and similar.
  2483.  
  2484.     * combine.c (subst): If we have, e.g., (lt CONST FOO), convert it
  2485.     to (gt FOO CONST).
  2486.  
  2487.     * recog.c (comparison_operand): Use comparison_code_p.
  2488.  
  2489.     * genconfig.c (walk_insn_part):     Add operand to indicate if PART is
  2490.     going to be used to recognize an insn (as opposed to emitting rtl).
  2491.     If not, ignore CC0.
  2492.     (gen_insn, gen_expand, gen_split, gen_peephole): Add new operand to
  2493.     walk_insn_part calls.
  2494.  
  2495.     * cse.c (find_comparison_args): Correctly compute rtx_code of
  2496.     comparison; if we find another comparison code inside, use it.
  2497.     * loop.c (get_condition): Likewise.
  2498.  
  2499.     * expr.c (expand_builtin): For ffs, don't pass VOIDmode to expand_unop.
  2500.  
  2501. Mon Nov     5 12:55:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2502.  
  2503.     * final.c (output_addr_const): Don't print parens for CONST.
  2504.  
  2505.     * reload1.c (choose_reload_regs): Handle case where find_equiv_reg
  2506.     returns a SUBREG.  Also, use variable `regno' uniformly throughout
  2507.     code that finds equivalent register.
  2508.  
  2509.     * gnulib2.c (__floatdisf, __fixunssfsi): New functions.
  2510.     (__fixsfdi, __fixunssfdi): New functions.
  2511.     * gnulib.c (__floatsisf, __fixsfsi): New functions.
  2512.  
  2513. Mon Nov     5 06:37:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2514.  
  2515.     * fold-const.c (fold, case EQ_EXPR and NE_EXPR): Convert, e.g.,
  2516.     (A & 2) == 2 to (A & 2) != 0.  This eliminates the need for these
  2517.     patterns in MD files.
  2518.     Detect more general cases of comparing something with itself.
  2519.  
  2520. Mon Nov     5 00:09:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2521.  
  2522.     * stmt.c (expand_cleanups): Don't run any cleanup twice.
  2523.  
  2524. Sun Nov     4 23:49:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2525.  
  2526.     * expr.c (convert_move): Use emit_no_conflict_block when converting
  2527.     SImode to DImode.
  2528.     If have slt insn, emit a compare insn; we must not have a use of
  2529.     cc0 without a set; normally, the compare will be deleted as
  2530.     redundant in final.c.
  2531.     Use shift rather than clear/test/negate for high-order word when
  2532.     doing sign extension.
  2533.  
  2534.     * optabs.c (emit_no_conflict_block): Don't put REG_NO_CONFLICT
  2535.     notes on the trailing copy insn; nobody looks there.
  2536.  
  2537.     * combine.c (try_combine): Don't combine a reg-reg copy if the
  2538.     destination is used in a REG_NO_CONFLICT note.
  2539.  
  2540.     * reload.c (find_equiv_reg): Use true_regnum to support SUBREGs
  2541.     as well as REGs.
  2542.  
  2543. Sun Nov     4 12:55:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2544.  
  2545.     * i386.md (extend*): Take out last change.
  2546.     Unix assembler rejects movsx...
  2547.  
  2548.     * expr.c (expand_expr): Special case for ignored volatile
  2549.     failed to return.
  2550.  
  2551. Sat Nov     3 14:42:34 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2552.  
  2553.     * expr.c (do_jump, case PLUS_EXPR): Turn off this case; it was a
  2554.     pessimization.
  2555.  
  2556. Fri Nov     2 01:51:31 1990  Michael Tiemann  (tiemann at cygnus.com)
  2557.  
  2558.     * stmt.c (expand_return): Don't emit a USE if VAL is a
  2559.     pseudo-register.
  2560.  
  2561. Fri Nov     2 15:30:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2562.  
  2563.     * gnulib2.c (__builtin_saveregs): Add version for i860.
  2564.  
  2565.     * out-i860.c (output_block_move): Rearrange the copy loop.
  2566.     Now uses two labels and a more complicated lead-in.
  2567.  
  2568. Fri Nov     2 14:17:24 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2569.  
  2570.     * m88k.md (extendsidi2):  New define_expand.
  2571.  
  2572.     * out-m88k.c:  Converted various constructs to use conventinal
  2573.     formatting.
  2574.  
  2575.     * m88k.md (ext pattern): Must have parens.
  2576.     * m88k.md (mul/div patterns): Added better documentation.  Removed
  2577.     unfounded restriction on immediate values.
  2578.     * m88k.md (increment and test peephole): Don't use %L.
  2579.  
  2580.     * out-m88k.c (m88k_layout_frame): Must allocate space for the
  2581.     addressing base register (-mpic).
  2582.     * out-m88k.c (output_tdesc): Use version 2 tdesc with PIC.
  2583.  
  2584.     * tm-m88k.h, tm-m88kdgux.h,: Don't predefine memcpy and others.
  2585.     * tm-m88k.h: Fixes for dwarf.
  2586.     * tm-m88ksvr4.h: Dwarf changes.
  2587.     * xm-m88k.h xm-m88kdgux.h xm-v88r32.h: Update comments.
  2588.  
  2589. Fri Nov     2 12:30:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2590.  
  2591.     * jump.c (comparison_dominates_p): Return 1 if codes are the same.
  2592.     (thread_jumps): Use get_label_after.
  2593.  
  2594.     * a29k.md (movdi): Handle CONST_INT as well as CONST_DOUBLE.
  2595.     (comparisons): Fix typo in define_split for floating-point NE.
  2596.  
  2597.     * reorg.c (fill_slots_from_thread): Don't mark as annulled if no
  2598.     delay list.
  2599.  
  2600.     * loop.c: Allow use of any register to store comparison results.
  2601.     (loop_skip_over): Don't treat comparison specially; copy all insns
  2602.     preceeding the jump.
  2603.     (check_for_endtest, other_reg_use_p): Deleted.
  2604.     (can_eliminate_biv_p, eliminate_biv): Deleted; code merged and
  2605.     placed into new maybe_eliminate_p_1.
  2606.     (may_eliminate_biv, may_eliminate_biv_1): New functions; recursively
  2607.     look at all rtx to see if every occurrence of a biv can be
  2608.     eliminated.
  2609.     (check_eliminate_biv): Deleted; callers changed to call
  2610.     may_eliminate_biv.
  2611.     (get_condition): Rework to look into previous insns to find insns
  2612.     that set the first operand of comparison insns.
  2613.  
  2614. Thu Nov     1 22:07:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2615.  
  2616.     * cse.c (fold_rtx, case COMPARE): Only convert compare to test if
  2617.     HAVE_cc0 is defined.
  2618.     * combine.c (subst): Copy COMPARE case from fold_rtx.  
  2619.     Simplify things like (ne (eq FOO BAR) (const_int 0)).
  2620.  
  2621. Thu Nov     1 18:06:56 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2622.  
  2623.     * math-68881.h (HUGE_VAL): Alternate definition for Suns.
  2624.  
  2625.     * config.gcc (sun3, etc.): Assume os4 as default for Sun 3 and Sun 4.
  2626.  
  2627.     * tm-i386v.h (STARTFILE_SPEC, LIB_SPEC): Handle -posix.
  2628.     (CPP_SPEC): New macro.
  2629.     (LIB_SPEC): Handle -shlib.
  2630.  
  2631.     * c-decl.c (init_decl_processing): Make last arg to memcpy and memcmp
  2632.     an unsigned long, to be like size_t.
  2633.  
  2634.     * Makefile.in (hard-params): Depend on gnulib2, not gnulib.
  2635.  
  2636. Wed Oct 31 22:12:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2637.  
  2638.     * config.gcc (ultrix):    New alternative.
  2639.  
  2640.     * i386.md (extend*): Change opcode to movsx.  Was movs.
  2641.  
  2642. Wed Oct 31 09:41:27 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2643.  
  2644.     * m88k.md: Deleted an old pattern for subtracting 0.
  2645.     * m88k.md: Deleted patterns for aligned bit-field insns.
  2646.     * m88k.md: Changed define_expand to define_insn for mulsi3 and
  2647.     umulsi3.
  2648.     * m88k.md: Converted various constructs to use conventional
  2649.     formatting.
  2650.     * m88k.md (mak patterns):  Fixed transcription errors.
  2651.  
  2652. Wed Oct 31 00:05:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2653.  
  2654.     * c-decl.c (init_decl_processing): Predefine the ordinary names
  2655.     of alloca, abs, memcpy, etc.
  2656.  
  2657.     * c-decl.c (duplicate_decls): Allow redefining built-in as static,
  2658.     but optionally warn.
  2659.  
  2660. Tue Oct 30 14:39:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2661.  
  2662.     * c-decl.c (finish_function): Use DEFAULT_MAIN_RETURN in `main'.
  2663.     * tm-vms.h (DEFAULT_MAIN_RETURN): Define this.
  2664.  
  2665.     * c-parse.y (yylex): Base is not 8 for just `0'.
  2666.  
  2667.     * cccp.c (do_define): Invert test of compare_defs.
  2668.  
  2669.     * cccp.c (make_definition): Convert newline to newline-newline.
  2670.  
  2671.     * Makefile.in (hard-params): Depend on gnulib.
  2672.  
  2673.     * m88k.md (divsi3): Delete declarations of gen_... functions.
  2674.  
  2675. Tue Oct 30 14:26:20 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2676.  
  2677.     * cse.c: Rework handling of comparisons to generalize better to
  2678.     machines that use registers to hold condition code information.
  2679.     (prev_insn_cc0*): Just store last rtx assigned to cc0 in prev_insn_cc0.
  2680.     (find_comparison_args): New function.
  2681.     (fold_rtx): Folded value of cc0 is the value previously stored into it.
  2682.     Rework handling of comparisons:     use find_comparison_args to see what
  2683.     is being compared.  If they are constants, compute the result of the
  2684.     comparison.  If not, see if the two operands are equivalent (only for
  2685.     non FP or non-IEEE FP).     Then see if we have already seen a comparison
  2686.     involving these operands that lets us give a value to this comparison.
  2687.     True comparisons return STORE_FLAG_VALUE, not 1.
  2688.     (fold_cc0): Deleted.
  2689.     (predecide_loop_entry): Call cse_insn on a copy of each insn at the
  2690.     loop test to propagate the values of items at the start of the loop.
  2691.     Then use fold_rtx to see if we know the result of the jump.
  2692.     (record_jump_equiv): Use new function find_comparison_args.
  2693.     (cse_insn): Just record value of CC0 if set; don't call fold_cc0.
  2694.     Don't modify PREV_INSN (insn) if INSN is a copy.
  2695.     (cse_main): Initialize const_true_rtx to rtx for STORE_FLAG_VALUE.
  2696.  
  2697.     * jump.c (comparison_code_p, comparison_dominates_p): New functions.
  2698.     (thread_jumps): Use comparison_dominates_p.
  2699.     Remove debugging code.
  2700.     * reorg.c (condition_dominates_p): Use new function
  2701.     comparison_dominates_p.
  2702.  
  2703.     * emit-rtl.c (next_cc0_user): Don't get confused by being call with a
  2704.     copy of an insn; use INSN_UID to check for an insn in a delay slot.
  2705.  
  2706.     * rtl.c (reg_note_name): Add name for new REG_LABEL note.
  2707.  
  2708.     * emit-rtl.c (make_insn_raw): No longer have JUMP_LABEL for INSN.
  2709.  
  2710. Tue Oct 30 09:26:15 1990  Tom Wood  (wood at dg-rtp.dg.com)
  2711.  
  2712.     * Update what strings in files edited so far.
  2713.     * tm-m88k.h, tm-m88kdgux.h, tm-m88ksv4r.h: Introduce VERSION_STRING
  2714.     and VERSION_INFO to more appropriately identify the compiler.
  2715.  
  2716.     * tm-m88k.h (ASM_OUTPUT_OPCODE): Stop processing the opcode if `%'
  2717.     is encountered.
  2718.     * out-m88k.c (print_operand): Add a tab to %L output.  Delete
  2719.     unused cases.
  2720.  
  2721.     * m88k.md:  Rework the movstrsi pattern and provide call_block_move
  2722.     and call_block_move_loop to support expand_block_move.
  2723.     * out-m88k.c:  Rework the block move functions.
  2724.     * make-m88k, make-m88kdgux:  Eliminate movstr.h.
  2725.  
  2726.     * m88k.md, out-m88k.c: Eliminate assembler comments.
  2727.  
  2728.     * m88k.md (ashlsi3 ashrsi3 lshlsi3 lshrsi3): Eliminate warnings
  2729.     about out of range shifts.
  2730.  
  2731.     * tm-m88k.h, out-m88k.c: Rename CONDITION_CODE_REGNUM CC0_REGNUM.
  2732.  
  2733. Mon Oct 29 18:06:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2734.  
  2735.     * final.c (final_end_function): Handle dwarf output.
  2736.     (final_scan_insn): Likewise.
  2737.     (output_source_line): Likewise, using ASM_OUTPUT_DWARF_LINE.
  2738.     * toplev.c (rest_of_decl_compilation): Likewise.
  2739.     (rest_of_compilation, main): Likewise.
  2740.     * varasm.c (assemble_variable): Likewise.
  2741.     * flags.h (enum debugger): Define DWARF_DEBUG.
  2742.  
  2743.     * cccp.c (do_define): Rewrite criterion for warning.
  2744.     Don't warn if -D redefining symbol with constant numeric value.
  2745.  
  2746.     * toplev.c (output_file_directive): New function.
  2747.     * sdbout.c (sdbout_filename): Deleted.
  2748.     * tm-3b1.h, tm-att386.h, tm-encore.h, tm-m88k.h,
  2749.     tm-mot3300.h, tm-tahoe.h, tm-vaxv.h (ASM_FILE_START): Use that.
  2750.  
  2751.     * c-decl.c (named_labels): No longer static.
  2752.     (pushlevel): Clear named_labels.
  2753.     (poplevel): Don't clear it here.
  2754.  
  2755. Mon Oct 29 13:32:57 1990  Michael Tiemann  (tiemann at cygnus.com)
  2756.  
  2757.     * Makefile.in: Update dependencies for various files, mostly cplus-*
  2758.     files.
  2759.  
  2760.     * rtl.def: Remove Sep 26 that added JUMP_LABELs to INSN and
  2761.     CALL_INSN.
  2762.     * rtl.h: Add REG_LABEL register note.  For INSN and CALL_INSN, the
  2763.     presence of this register note has the same meaning that a non-NULL
  2764.     JUMP_LABEL would have with the Sep 26 change.
  2765.     * jump.c (jump_optimize): Revert to clearing JUMP_LABEL field of
  2766.     JUMP_INSNs only.
  2767.     (mark_jump_label): If INSN is an INSN or a CALL_INSN, add a
  2768.     REG_LABEL note if a LABEL appears (and no such note already exists).
  2769.     ??? Once recorded, this information appears never to be used.
  2770.  
  2771.     * jump.c (delete_jump): The deletion of INSN must take place when
  2772.     INSN is a simple jump.    Also, don't try to optimize if we come
  2773.     across an insn with the reorg-generated pattern (USE (INSN ...)).
  2774.  
  2775.     * cplus-lex.c, cplus-dbxout.c: Remove vestigial support for dumping
  2776.     and undumping the compiler.
  2777.  
  2778.     * Merge cplus diffs from Kenner.
  2779.     * cplus-cvt.c (convert_to_integer): Fold the COND_EXPR we construct.
  2780.     * cplus-typeck.c (build_conditional_expr): Ditto in three places.
  2781.     * cplus-lex.c (yylex,do_pending_inlines): Add conditionals for
  2782.     _IBMR2.     This hair will disappear when pcccp support is merged, but
  2783.     needed for now.
  2784.     * cplus-tree.h: Conditionalize use of non-int bitfield types on
  2785.     ONLY_INT_FIELDS.  Also, remove duplication declarations of
  2786.     get_temp_name, get_temp_aggr, and get_temp_regvar; add declaration
  2787.     of build_decl_list.
  2788.  
  2789. Mon Oct 29 11:45:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2790.  
  2791.     * fixincludes: Fix missing semi in rusers.h.
  2792.  
  2793. Mon Oct 29 07:07:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2794.  
  2795.     * flow.c (mark_used_regs): When converting "...*p...; q = p + size"
  2796.     to "q = p, ...*q..., q = q + size", show that Q is needed after INSN.
  2797.  
  2798.     * romp.md (negdi): Directly generate assembly code rather than
  2799.     converting this into a MINUS.
  2800.  
  2801.     * fold-const.c (fold, case COND_EXPR): Add missing condition in test
  2802.     for (A ? 0 : A).
  2803.  
  2804. Sun Oct 28 15:01:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2805.  
  2806.     * flow.c (find_basic_blocks): An indirect jump can go
  2807.     to any label whose address is used as data.
  2808.  
  2809.     * m68k.md (zero-extend QI): Use gen_rtx, not change_address.
  2810.  
  2811.     * Makefile.in (USER_H): List va-*.h explicitly.
  2812.     (toplev.o): Depend on RTL_H.
  2813.     (stamp-*): Depend on move-if-change.
  2814.     (install-headers): Depend on various header files.
  2815.     (install-man): Depend on gcc.1.
  2816.     (gcc.o): Depend on gvarargs.h and obstack.h.
  2817.  
  2818.     * Makefile.in: Make sure every `if' has an `else'.
  2819.  
  2820.     * c-typeck.c (build_binary_op_nodefault): Prevent warning for
  2821.     variable shift count.
  2822.  
  2823.     * i860.md (movsf): Handle moving from CONST_DOUBLE to reg or mem.
  2824.  
  2825. Sun Oct 28 09:39:14 1990  Michael Tiemann  (tiemann at cygnus.com)
  2826.  
  2827.     * jump.c (delete_jump): The deletion of INSN must take place when
  2828.     INSN is a simple jump.    Also, don't try to optimize if we come
  2829.     across an insn with the reorg-generated pattern (USE (INSN ...)).
  2830.  
  2831.     * sparc.md, tm-sparc.h, out-sparc.c: Significantly rewritten to take
  2832.     advantage of new 2.0 optimization capabilities.
  2833.     * old-sparc.md, tm-old-sparc.h, out-old-sparc.c: These are copies of
  2834.     the above files before the rewrite.  They may be interesting for
  2835.     measuring performance of old vs. new machine description idioms.
  2836.  
  2837. Sun Oct 28 00:22:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2838.  
  2839.     * loop.c (scan_loop): Don't think that a branch to an end-test of
  2840.     a containing look is actually the branch to the end-test of the
  2841.     outer loop.
  2842.  
  2843.     * reload.c (indirect_ok): Deleted.
  2844.     (find_reloads): Accept new arg IND_LEVELS instead of old IND_OK;
  2845.     pass this to find_reloads_address and find_reloads_toplev.
  2846.     (find_reloads_toplev): Accept IND_LEVELS and pass to
  2847.     find_reloads_address.
  2848.     (find_reloads_address): Accept IND_LEVELS and pass it on to 
  2849.     find_reloads_address_1.
  2850.     When calling ourself recursively for a MEM as an address, show
  2851.     one indirect level has been used.
  2852.     (find_reloads_address_1): Accept IND_LEVELS and pass it to ourselves
  2853.     in recursive calls and to find_reloads_address.
  2854.     * reload1.c (spill_indirect_levels): New var; used to be
  2855.     spill_indirect_ok.
  2856.     (reload): Compute number of levels of indirection and set it into
  2857.     spill_indirect_levels.
  2858.     (reload, reload_as_needed): Pass spill_indirect_levels not
  2859.     spill_indirect_ok.
  2860.  
  2861.     * reload.c (find_reloads): Make similar change to "V" as "O".
  2862.  
  2863.     * reload1.c (eliminate_regs): For binary operations, don't call
  2864.     recursively on second arg if null (for EXPR_LIST).
  2865.     (eliminate_regs_in_insn): Perform register elmination in the
  2866.     REG_NOTES of an insn when we are doing it for the last time.
  2867.  
  2868.     * vax.md (call_value_pop): Use correct operand number for number
  2869.     of bytes popped.
  2870.  
  2871.     * tm-romp.h (EXTRA_CONSTRAINT): Ensure we ignore reg_renumber if
  2872.     register allocation hasn't been done yet.
  2873.  
  2874.     * function.c (init_function_start): Initialize reg_renumber to zero;
  2875.     it is checked in rtx_renumbered_equal_p.
  2876.  
  2877.     * loop.c (loop_optimize): Ensure we assign a new LUID to all
  2878.     special notes, including NOTE_INSN_FUNCTION_BEG (0).
  2879.  
  2880. Sat Oct 27 12:22:46 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2881.  
  2882.     * out-a29k.c (print_operand, output_prolog): Don't try to fill delay
  2883.     slots with parts of epilogue or prologue unless -O -fdelayed-branch.
  2884.  
  2885.     * tm-rs6000.h (STRUCTURE_SIZE_BOUNDARY): Should be 8.
  2886.  
  2887.     * reorg.c (mark_target_live_regs): Ignore REG_DEAD notes for pseudos;
  2888.     they must not have gotten hard registers.
  2889.  
  2890. Fri Oct 26 11:30:28 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2891.  
  2892.     * gcc.c (main): Set machine_suffix before reading specs file.
  2893.  
  2894.     * c-typeck.c (build_binary_op_nodefault): Warn for bad shift counts.
  2895.  
  2896.     * stor-layout.c (layout_record):
  2897.     BITFIELD_NBYTES_LIMITED affects bitfields only.
  2898.  
  2899.     * loop.c (note_addr_stored): Don't assume PLUS in address is aggregate.
  2900.  
  2901. Fri Oct 26 00:46:09 1990  Michael Tiemann  (tiemann at cygnus.com)
  2902.  
  2903.     * cplus-tree.h: Declare `build_type_conversion' once instead of
  2904.     three times.
  2905.  
  2906.     * loop.c (loop_skip_over): Handle machines without cc0.
  2907.     (labels_in_range_p): Fixed typo where this function returned 0 when
  2908.     it meant to return 1.
  2909.     (check_for_endtest): New function.  Returns non-zero when
  2910.     argument is a simple conditional test insn (suitable for being the
  2911.     endtest of a loop).
  2912.     (strength_reduce): Use `check_for_endtest' to identify the endtest.
  2913.     Also fixed some typos in comments.
  2914.     (can_eliminate_biv): Use `check_for_endtest' here, too.
  2915.     (get_condition): Generalized to handle machines without cc0.  Now
  2916.     THIS_CC_RTX is the value of the cc rtx.
  2917.  
  2918.     * integrate.c (expand_inline_function): Conditionalize away
  2919.     cc0-specific code with HAVE_cc0.
  2920.     (try_constants): Add appropriate declaration for ORIG.
  2921.     (try_fold_condition): Generalized to work for non-cc0 condition
  2922.     values.
  2923.  
  2924.     * cplus-type2.c (digest_init): Add missing declaration of FIELD.
  2925.     * rtl.h: Add missing declaration of plus_constant_for_output.
  2926.     * jump.c (can_reverse_comparison): Fixed typo.
  2927.     (delete_jump): Made to work without cc0_rtx.
  2928.  
  2929. Fri Oct 26 00:01:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2930.  
  2931.     * reorg.c: Conditionalize references to CC0_RTX on HAVE_cc0.
  2932.  
  2933.     * reload.c (find_reloads): For the `o' constraint, if IND_OK is
  2934.     true, use offsettable_memref_p instead of the nonstrict version.
  2935.  
  2936.     * jump.c (delete_jump): If HAVE_cc0 is not defined, it is not safe to
  2937.     delete previous insn that sets a condition code register, because it
  2938.     might not be dead.  Rework to look at all registers dying in this insn
  2939.     and delete the first previous insn that sets any such register if that
  2940.     is all it does.
  2941.  
  2942.     * jump.c (jump_optimize): Remove extraneous call to next_active_insn
  2943.     in optimization of "if (...) x = 1; else ...; if (x) ...".
  2944.  
  2945.     * cse.c (predecide_loop_entry): Don't set cc_value to null and then
  2946.     stick it in the rtl.
  2947.  
  2948.     * rtlanal.c (find_next_ref): Deleted from here.
  2949.     * explow.c: Include hard-reg-set.h for find_next_ref.
  2950.     (find_next_ref): Moved to here.
  2951.     * Makefile.in (explow.o): Includes hard-reg-set.h.
  2952.  
  2953. Thu Oct 25 21:37:15 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  2954.  
  2955.     * va-mips.h (va_list): Put __ in member names.
  2956.     (va_dcl): Rename _va_alist to __va1_alist.
  2957.     * va-i860.h (__va_struct): Put __ in member names.
  2958.     * gvarargs.h, va-*.h: (__va_ellipsis): New macro.
  2959.     (va_dcl): Use that.
  2960.  
  2961.     * c-typeck.c (convert_for_assignment): For functions, reverse the
  2962.     usual criterion for warning about const vs non-const.  Volatile also.
  2963.  
  2964.     * m88k.md, tm-m88k.h, out-m88k.c: Rewrites by wood@dg-rtp.dg.com.
  2965.     * tm-m88kdgux.h, tm-v88r32.h, tm-m88ksvr4.h: New files.
  2966.     * xm-m88kdgux.h, xm-v88r32.h, xm-m88ksvr4.h: New files.
  2967.     * make-m88k, make-m88kdgux: New files.
  2968.     * config.gcc (m88k-dgux, m88k-v88r32, m88k-svr4): New alternatives.
  2969.  
  2970.     * gvarargs.h, gstdarg.h: Include alternate file for m88k.
  2971.  
  2972.     * expr.c (expand_expr): For ARRAY_REF, preserve const and volatile.
  2973.  
  2974.     * expr.c (expand_builtin): Handle strcmp and memcmp with function calls
  2975.     if can't be open coded.
  2976.  
  2977.     * function.c (expand_function_end): Round trampoline addr to init.
  2978.     (round_trampoline_addr): Fix braino in alignment.
  2979.  
  2980. Thu Oct 25 14:54:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  2981.  
  2982.     * jump.c: Now includes insn-config.h.
  2983.     (jump_optimize): inequality_comparisons_p takes only one operand again.
  2984.     (can_reverse_comparison_p): Handle case where a register is used
  2985.     for the condition code; if we can't easily find the COMPARE that
  2986.     was used to set the register, say we can't reverse the comparison.
  2987.     * Makefile.in (jump.o): Now includes insn-config.h.
  2988.  
  2989.     * jump.c (jump_optimize): Put back change removed on Oct 21st;
  2990.     emit_store_flag has now been updated.
  2991.  
  2992.     * rtlanal.c (inequality_comparisons_p): Reject any ordered
  2993.     comparison; we need not just reject when comparing against
  2994.     cc0_rtx.
  2995.     * recog.c (next_insn{,s}_test_no_inequality): inequality_comparisons_p
  2996.     again has only one operand.
  2997.     * genattrtab.c (cc0_rtx): No longer needed; remove change of Oct 21.
  2998.  
  2999.     * genconfig.c (have_cc0_flag): New variable.
  3000.     (walk_insn_part): Set it when we see CC0.
  3001.     (main): Write #define HAVE_cc0 when it is set.
  3002.     * flow.c: Now includes insn-config.h.
  3003.     * Makefile.in (flow.o): Likewise.
  3004.  
  3005.     * combine.c (subst): If X and FROM are the same register number,
  3006.     but in different modes, force the combine not to be done.
  3007.     Add missing initialization of undobuf.storage.
  3008.  
  3009. Thu Oct 25 11:34:35 1990  Michael Tiemann  (tiemann at cygnus.com)
  3010.  
  3011.     * sched.c (new_sometimes_live): Protect this function in case it is
  3012.     called with (OFFSET,BIT) that evaluates to >= MAX_REGNO.
  3013.  
  3014.     * jump.c (sets_cc0_p): Conditionalized to abort if called when
  3015.     machine does not support cc0.
  3016.  
  3017.     * rtlanal.c (reg_set_p): Now non-static.
  3018.     * rtlanal.c (rtx_varies_p): Handle LO_SUM more accurately.
  3019.     * rtlanal.c (find_next_ref): New function.  Returns the insn that
  3020.     next references REG after INSN, or 0 if REG is clobbered before next
  3021.     referenced or it cannot easily find a reference to REG.
  3022.  
  3023.     * recog.c (next_insn_tests_no_inequality): Conditionalized on
  3024.     HAVE_cc0.
  3025.  
  3026.     * rtlanal.c (inequality_comparisons_p): Takes new argument
  3027.     THIS_CC0_RTX which is the rtl for the condition code value we are
  3028.     concerned about testing.  All callers changed.
  3029.  
  3030.     * flow.c (propagate_block,mark_used_regs): Conditionalize
  3031.     specialized cc0 handling only if HAVE_cc0 is defined.
  3032.  
  3033.     * genemit.c (gen_exp): In REG case, If CC0_REGNUM is defined,
  3034.     save space by using REG_CC0_RTX instead of allocating a new
  3035.     (REG, mode, CC0_REGNUM) rtx if the mode is SImode.
  3036.  
  3037.     * final.c (output_addr_const): Handle PC for P.I.C. code generation.
  3038.     Also, put parens around CONST expressions so that precedence can be
  3039.     maintained.
  3040.     * final.c (final_scan_insn): Don't look for redunant compares
  3041.     except when HAVE_cc0 is defined.
  3042.     Also, use `find_cc' to locate the rtx functioning as the
  3043.     condition code register in order to perform appropriate calls
  3044.     to `alter_cond'.
  3045.  
  3046.     * expr.c (expand_expr): Supply missing arg in calls to `store_expr'.
  3047.  
  3048.     * expmed.c (emit_store_flag): New argument COMPARISON is the
  3049.     comparison operation whose result we store.
  3050.  
  3051.     * recog.c (offsettable_address_p,adj_offsettable_operand): Use
  3052.     `plus_constant_for_output' instead of `plus_constant' since we
  3053.     are testing conditions which rely on being able to add small
  3054.     offsets to e.g. LO_SUM operands.
  3055.     * explow.c (plus_constant): No special handling for LO_SUM.  It is
  3056.     not valid to add a constant to a term with LO_SUM, since the
  3057.     constant may need to be added to the high bits that form the sum,
  3058.     and those high bits are not readily available.
  3059.     * explow.c (plus_constant_for_output): Same as `plus_constant'
  3060.     except that we do allow adding constants to LO_SUM terms.  This
  3061.     function works only in special cases such as for
  3062.     `adj_offsettable_operand' and `offsettable_address_p'.
  3063.  
  3064.     * emit-rtl.c: Declare reg_cc0_rtx which is like cc0_rtx, but
  3065.     is a register instead of a special form.  reg_cc0_rtx should
  3066.     be used when representing the condition code register on a
  3067.     machine where condition codes are only set if explicitly set.
  3068.     For machines which allow arbitrary registers to be used as
  3069.     condition code registers (such as the MIPS and 88k), normal
  3070.     pseudo registers should be used instead.
  3071.     * emit-rtl.c (next_cc0_user,prev_cc0_setter): Conditionalized
  3072.     on HAVE_cc0.
  3073.     * emit-rtl.c (find_cc): New function.  Given INSN, returns
  3074.     the rtx of what functions as the condition code register for
  3075.     INSN.  On machines which use cc0_rtx, this is always cc0_rtx.
  3076.     On machines which have a dedicated register for cc0, this is
  3077.     that register.    On machines which allocate pseudos for holding
  3078.     condition codes, this is the pseudo found in a REG_CC0 note.
  3079.     Otherwise, this function returns 0.
  3080.     * emit-rtl.c (init_emit_once): Allocate `reg_cc0_rtx' if
  3081.     CC0_REGNUM is defined.
  3082.  
  3083.     * cse.c (make_regs_equiv): Don't consider making a reg
  3084.     equivalent to another reg whose class is NO_REGS.
  3085.     * cse.c (canon_reg): Don't canonicalize a register to
  3086.     one whose class is NO_REGS.
  3087.     * cse.c (fold_rtx): Conditionalize code for handling cc0_rtx
  3088.     with HAVE_cc0.
  3089.     * cse.c (predecide_loop_entry): Generalize code to use either
  3090.     a register or cc0_rtx.
  3091.     * cse.c (cse_insn): Conditionalize code for handling cc0_rtx
  3092.     with HAVE_cc0.
  3093.  
  3094.     * combine.c (combine_instructions,try_combine,subst):
  3095.     Conditionalize code handling cc0_rtx with HAVE_cc0.
  3096.     * combine.c (simplify_set_cc0_and): Abort if HAVE_cc0 is not
  3097.     defined.
  3098.     * combine.c (try_distrib): Add break at end of switch cases.  It is
  3099.     dangerous to leave the last cases of a switch statement to fall
  3100.     through since new cases added after will get fallen into.
  3101.  
  3102.     * recog.c (validate_change): Always succeed for an asm insn,
  3103.     since recog always fails to recognize asm insns.  This is
  3104.     needed for virtual register instantiation in asm insns.
  3105.  
  3106.     * cse.c (cse_main): When following jumps, notice whether a
  3107.     particular basic block causes CSE_JUMPS_ALTERED to become set.    When
  3108.     this happens, repeat the scan.
  3109.     * cse.c (refers_to_mem_p): Changed parameter name REG to BASE,
  3110.     which is more accurate.     Also, taught it how to cope with
  3111.     LO_SUM rtl constructs.
  3112.  
  3113. Wed Oct 24 15:36:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3114.  
  3115.     * calls.c (store_one_arg): Accept additional arg, FNDECL.
  3116.     Don't save argument area if it is within the REG_PARM_STACK_SPACE
  3117.     area, but mark the area in use.
  3118.     (expand_call): If ACCUMULATE_OUTGOING_ARGS and REG_PARM_STACK_SPACE,
  3119.     treat the stack area for the registers as be clobbered by the called
  3120.     routine (e.g., if it was compiled without -O) and save and restore
  3121.     it if it was previously used for arguments in a similar manner to
  3122.     the remainder of the argument area (done by store_one_arg).
  3123.  
  3124.     * calls.c (expand_call): Support new description macro,
  3125.     STACK_PARMS_IN_REG_PARM_AREA.
  3126.     * function.c (assign_parms): Likewise.
  3127.  
  3128. Wed Oct 24 12:47:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3129.  
  3130.     * c-typeck.c (build_array_ref): Use main variant for value type.
  3131.  
  3132.     * genoutput.c (output_prologue): Let SEPARATE_AUX_OUTPUT
  3133.     cause aux-output.c not to be included.
  3134.     Makefile.in (aux-output2.c): Copy aux-output.c and then compile it.
  3135.  
  3136.     * reload.c (subst_reg_equivs): Treat HIGH like other constants.
  3137.  
  3138.     * reload.c (push_reload): When testing hard reg for validity,
  3139.     test subsequent regs only against class, not for HARD_REGNO_MODE_OK.
  3140.  
  3141. Tue Oct 23 22:49:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3142.  
  3143.     * cccp.c (collect_expansion): Skip ## at start after the error.
  3144.  
  3145.     * gcc.c (default_compilers): Handle - as suffix.
  3146.     (main): Make that a special case; it matches only exactly `-'.
  3147.  
  3148. Tue Oct 23 22:40:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3149.  
  3150.     * romp.md (store{s,h,q}i pattern): Allow "b" for clobbered pseudo
  3151.     in addition to "d" in first alternative.
  3152.  
  3153.     * reload1.c (eliminate_regs): IF_THEN_ELSE isn't a unary operation.
  3154.  
  3155. Tue Oct 23 20:35:13 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3156.  
  3157.     * m68k.md (zero-extend QI): When pushing, store value at 1(sp).
  3158.  
  3159. Mon Oct 22 12:27:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3160.  
  3161.     * cccp.c (rescan): In the loop that handles numbers, discard \newline.
  3162.     Also make `..' terminate a preprocessing number.
  3163.  
  3164.     * Makefile.in (tmpgnulib, stamp-gnulib2): Do `set -e'.
  3165.  
  3166.     * gcc.c (default_compilers): Give __GNUC__ value 2.
  3167.     Don't define it for .S files.
  3168.  
  3169. Mon Oct 22 07:33:42 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3170.  
  3171.     * optabs.c (emit_indirect_jump): New function; now checks predicate
  3172.     of indirect_jump.
  3173.     * stmt.c (expand_computed_goto, expand_goto): Use new function instead
  3174.     of directly emitting indirect jump.
  3175.  
  3176.     * flow.c (mark_set_1): Make LOG_LINKS for hard registers.
  3177.     * combine.c (subst): Make new macro COMBINE_RTX_EQUAL_P which
  3178.     considers things equal if they are the identical RTX or the same
  3179.     register with the same mode; use to see if something changed and
  3180.     if we have a match.
  3181.  
  3182.     * cccp.c (S_ISREG): Use argument instead of global.
  3183.     (main): Correct sense of S_ISREG usage.
  3184.     (check_precompiled): Use S_ISREG.
  3185.  
  3186.     * flow.c (mark_used_regs): Don't allow reg_next_use to point to
  3187.     a NOTE; either point it to replacement insn or invalidate it.
  3188.  
  3189. Mon Oct 22 00:13:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3190.  
  3191.     * c-parse.y (xdecls): No warning unless -pedantic.
  3192.  
  3193. Sun Oct 21 17:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3194.  
  3195.     * genattrtab.c (cc0_rtx): Define, referenced in rtlanal.c.
  3196.  
  3197.     * jump.c (jump_optimize): Remove code that depends on changes to
  3198.     emit_store_flag that haven't been made yet.
  3199.  
  3200.     * expmed.c (extract_bit_field): Correctly check for bitfield
  3201.     completely filling a mode.
  3202.  
  3203.     * out-romp.c (output_epilogue): Correctly write number of words of
  3204.     arguments into trace table.
  3205.  
  3206.     * calls.c (store_one_arg): Fix error in change of Oct 19th.
  3207.  
  3208.     * reorg.c (mark_target_live_regs): Revert back to old behavior
  3209.     of scanning all insns, even those in delay slots.
  3210.     (fill_simple_delay_slots): Need only call update_block if we move
  3211.     an insn across a label.
  3212.  
  3213.     * Makefile.in (LIBFUNCS): Use consistent naming convention for
  3214.     comparison routines; gnulib.c was always correct.
  3215.  
  3216.     * function.c (assign_parms): Don't overwrite DECL_INCOMING_RTL when
  3217.     we are called for the second time.
  3218.  
  3219.     * integrate.c (initialize_for_inline): Don't make a new return label
  3220.     here; the maximum label number has already been computed.
  3221.     (save_for_inline_copying, save_for_inline_no_copy): Do it here instead.
  3222.  
  3223.     * reload.c (find_reloads_address): For indirect address where the
  3224.     underlying address is also invalid, ensure that we substitute into
  3225.     the MEM that we will use.
  3226.  
  3227. Sun Oct 21 14:12:47 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3228.  
  3229.     * reload.c (find_equiv_regs): Reject reg that overlaps goal.
  3230.  
  3231.     * expmed.c (extract_bit_field): For big fields, make sure
  3232.     value really goes in the target.
  3233.  
  3234.     * expr.c (expand_builtin): Delete __builtin_varargs.
  3235.     (EXPAND_BUILTIN_SAVEREGS): New macro says how to do __builtin_saveregs.
  3236.  
  3237.     * calls.c (expand_call): No "can't inline" warning if -fno-inline.
  3238.  
  3239.     * stddef.h: Add missing #endif.
  3240.  
  3241. Sat Oct 20 14:33:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3242.  
  3243.     * function.c (round_trampoline_addr): New function.
  3244.     (trampoline_address): Use that.
  3245.  
  3246. Fri Oct 19 15:13:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3247.  
  3248.     * calls.c (store_one_arg): Don't mark stack area used until after
  3249.     we have written into it; if we do it before, the restore might
  3250.     clobber a function result being put into that stack area.
  3251.  
  3252.     * objc-actions.c (print_lang_statistics): Add empty function.
  3253.  
  3254.     * recog.c (inequality_comparisons_p): Deleted from here.
  3255.     * rtlanal.c (inequality_comparisons_p): Moved to here; not static.
  3256.  
  3257.     * a29k.md (extendhisi2): Fix typo in define_split.
  3258.  
  3259.     * Makefile.in (integrate.o): Includes integrate.h.
  3260.     (reorg.o): Includes insn-flags.h.
  3261.  
  3262. Fri Oct 19 14:49:26 1990  Michael Tiemann  (tiemann at cygnus.com)
  3263.  
  3264.     * sdbout.c (sdbout_symbol): If a variable belongs to an inline
  3265.     function, the decl's rtl may not be rewritten by alter_reg.  So if
  3266.     we have a variable allocated to a pseudo, just get the hard register
  3267.     number from `reg_renumber'.  ?? But I thought that COFF was so
  3268.     losing that it was decided one could not represent debug info for
  3269.     inline functions in COFF.
  3270.  
  3271. Fri Oct 19 13:21:25 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3272.  
  3273.     * fold-const.c (split_tree): Use NEGATE_EXPR to negate *conp.
  3274.  
  3275. Fri Oct 19 00:15:21 1990  Michael Tiemann  (tiemann at cygnus.com)
  3276.  
  3277.     * version.c: Bumped to 1.90.03.
  3278.  
  3279.     * tree.c: Added facility for gathering statistics on the number of
  3280.     tree nodes allocated and the size in bytes they occupy.     The
  3281.     statistics are by tree_node_kind, which is almost like using the
  3282.     tree code letter, but has more resolution for dealing with different
  3283.     kinds of `x' nodes.  The facility is enabled by compiling the
  3284.     compiler with -DGATHER_STATISTICS and using the -fstats flag.
  3285.  
  3286.     * expr.c (do_tablejump): Emit a BARRIER after the jump that performs
  3287.     the tablejump.
  3288.  
  3289.     * cplus-typeck.c (c_expand_return): Rewritten so that the function
  3290.     value return register is not used except as a target of the function
  3291.     return value.
  3292.  
  3293.     * cplus-tree.c (build_cplus_new): New argument WITH_CLEANUP_P
  3294.     controls whether this functino should build its result with a
  3295.     cleanup or not.     All callers changed.
  3296.  
  3297.     * cplus-lex.c: File updated to latest changes to c-parse.y's lexical
  3298.     analyzer.
  3299.  
  3300.     * cplus-except.c (cplus_expand_raise): New parameter FOR_RERAISE
  3301.     is used to control whether to output extra gotos or not.  When
  3302.     nonzero, the compiler can avoid writing out the extra gotos that are
  3303.     otherwise needed to avoid warning messages.
  3304.  
  3305.     * cplus-decl2.c (flag_short_double): Add support for this option.
  3306.  
  3307.     * cplus-decl.c (finish_function): Always cause returns to jump to
  3308.     the return label.  This allows -Wreturn to give meaningful error
  3309.     messages.
  3310.  
  3311.     * jump.c (invert_exp): Make this non-static.
  3312.     (jump_optimize): Reorganization and simplification of main inner
  3313.     loop.  Comments added explaining what the optimizers are looking
  3314.     for.  New optimization added that optimizes for consecutive testing
  3315.     of an inequality test followed by an equality test (or vice-versa).
  3316.     Changes made to accommodate reorg.c on Sparc.  Code for
  3317.     cross-jumping return statements was previously dead in this
  3318.     function; as a result of the reorganization, it is now live.
  3319.     (find_cross_jump): Added temporary variable PREV1 to hold return
  3320.     value of `prev_nonnote_insn' instead of calling the function 3 times
  3321.     in a row.  Also changed so that USE or CLOBBERS are not cross-jumped
  3322.     unless some real insns are also cross-jumped.  This helps reorg.
  3323.     (redirect_jump): Fixed a return that returned no value so that it
  3324.     returns 1.
  3325.     (rtx_renumbered_equal_p): Test that reg_renumber is nonzero before
  3326.     using it.  We may want to call this function earlier than by the
  3327.     time that array has been initialized.
  3328.  
  3329.     * integrate.c (save_for_inline_{copying,nocopy}): New functions to
  3330.     replace `save_for_inline'.  save_for_inline_copying saves the rtl
  3331.     for inline functions by copying the rtl to the
  3332.     maybepermanent_obstack.     It is called when the rtl of the current
  3333.     function is going to be compiled immediately.
  3334.     save_for_inline_nocopy takes advantage of the fact that inline
  3335.     function rtl is already allocated to the maybepermanent_obstack, and
  3336.     need therefore not be copied if it's not going to be modified by the
  3337.     compiler (such as by `rest_of_compilation').
  3338.     ({initialize_for,finish}_inline): New helper routines for
  3339.     save_for_inline_... functions.
  3340.     (note_modified_parmregs): Function called by `mark_stores' to note
  3341.     whether parameters are assigned to in the body of an inline
  3342.     function.
  3343.     New interface, integrate.h, provides declarations for functions used
  3344.     by other routines that might want to copy chunks of rtl.
  3345.     ({save,try}_constants): Now global (for integrate.h).
  3346.     (mark_stores): Ditto.
  3347.     (try_fold_condition): Ditto.
  3348.  
  3349.     * dbxout.c (dbxout_symbol): If a variable belongs to an inline
  3350.     function, the decl's rtl may not be rewritten by alter_reg.  So if
  3351.     we have a variable allocated to a pseudo, just get the hard register
  3352.     number from `reg_renumber'.
  3353.  
  3354.     * varasm.c (output_const_pool): No longer static.
  3355.     (assemble_variable): Do output debugging information for global
  3356.     register variables.  GDB does the right thing for global register
  3357.     variables.
  3358.  
  3359.     * toplev.c: New flag `warn_inline' for warning when a function
  3360.     declared inline was not in fact inlined.  Also, new flag
  3361.     `flag_no_inline' which disables function inlining, but retains
  3362.     other properties of inline functions (such as lazy compilation
  3363.     and write-only-if-needed).
  3364.     * toplev.c (compile_file): Changed logic for inline function
  3365.     handling to work with `warn_inline' and `flag_no_inline'.
  3366.     Also modified to call `save_for_inline_nocopy' when insns are to be
  3367.     saved but not immediately compiled.
  3368.  
  3369.     * function.c (instantiate_decls): If instantiating a function
  3370.     which was saved for inline expansion, preserve the rtl created
  3371.     by the instantiation as well.
  3372.  
  3373.     * flags.h (flag_no_inline): New flag; if nonzero, then no
  3374.     calls are inlined, regardless of their declaration.  We still
  3375.     save the insns for these functions in DECL_SAVED_INSNS so that
  3376.     the functions need not be written if they are never called.
  3377.  
  3378.     * calls.c (expand_call): If `flag_no_inline' is set, don't
  3379.     inline the call, regardless of whether it was declared inline
  3380.     or not.
  3381.  
  3382. Thu Oct 18 13:10:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3383.  
  3384.     * rtl.def (CODE_LABEL): Add new string field.
  3385.     * rtl.h (LABEL_NAME): Define macro for access.
  3386.     * emit-rtl.c (gen_label_rtx): Initialize it to 0.
  3387.     * stmt.c (expand_label): Store proper name of label.
  3388.     * final.c (final_scan_insn): Call sdbout_label.
  3389.  
  3390.     * tree.h (built_in_function): Add BUILT_IN_VARARGS.
  3391.     * c-decl.c (init_decl_processing): Declare __builtin_varargs.
  3392.     * expr.c (expand_builtin): Generate code for it.
  3393.     Uses new macro EXPAND_BUILTIN_VARARGS.
  3394.  
  3395.     * sdbout.c (SDB_IS_FAKE): Macro deleted.
  3396.     (MAKE_LINE_SAFE): New macro.
  3397.     (sdbout_begin_block, sdbout_end_block, sdbout_end_function): Use it.
  3398.     (sdbout_one_type): Delete spurious second arg in all callers.
  3399.     (sdbout_types, sdbout_end_function):
  3400.     Use sdbout_dequeue_anonymous_types.
  3401.     (sdbout_label): New function.
  3402.  
  3403.     * expr.h (FUNCTION_ARG_BOUNDARY): Default is now PARM_BOUNDARY.
  3404.  
  3405.     * gvarargs.h, va-*.h (va_dcl):
  3406.     Add ellipsis so current_function_varargs is set.
  3407.  
  3408.     * jump.c (jump_optimize): Exit push-optimize loop at end of insns.
  3409.  
  3410. Thu Oct 18 07:09:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3411.  
  3412.     * reorg.c: Major reorganization.  Many special cases have been moved
  3413.     into more general code and an overall restructuring has been done.
  3414.     Numerous bugs have been fixed.    Highlights:
  3415.     (dbr_schedule): First make list of all insns needing filling.  Then
  3416.     iterate for two passes.     In each pass, try two methods of filling
  3417.     delay slots, then do some canonicalizations, which may create more
  3418.     insns to fill.
  3419.     (fill_simple_delay_slots): Now uses list of insns that need filling,
  3420.     rather than making such a list.
  3421.     Enhance code that finds insns when code paths merge to allow multiple
  3422.     uses of the label as long as all uses are in the skipped code.
  3423.     (struct resource): Notice volatile memrefs.
  3424.     (stop_search_p): Allow option to continue when label is reached.
  3425.     (find_end_label, make_return_insns): New functions; when we have a
  3426.     filled branch that is really a RETURN, first convert it to a jump
  3427.     to a return label and then later see if the insns in the delay slots
  3428.     are also valid for a RETURN.
  3429.     (mostly_true_jump): Test for branch to loop beginning rather than
  3430.     branch at end of loop.    Also, conditional return insns predict false.
  3431.     (own_thread_p): New function to replace fall_through_to_p.
  3432.     (try_merge_delay_insns): Only support merging insns already in an
  3433.     insns delay list.
  3434.     (get_branch_condition, condition_dominates_p): New functions.
  3435.     (steal_delay_list_from_{target,fallthrough}): New functions to
  3436.     replace steal_delay_list.
  3437.     (redundant_insn_p): New function.
  3438.     (update_block, mark_target_live_regs, dbr_schedule): When moving
  3439.     an insn not at the front of the basic block to a delay slot,
  3440.     leave a "ghost" USE so that we can track things livened and killed.
  3441.     (fill_slots_from_thread): Eliminate use of static vars for number
  3442.     of slots to fill and already filled.
  3443.     Try to modify an insn that follows a register-register copy to use
  3444.     the original register; this may create a delay-slot opportunity.
  3445.     (try_hoist_target{,_1}): Deleted.
  3446.     (relax_delay_slots): Rewritten to just perform canonicalizations
  3447.     previously done elsewhere.  No actual delay slot filling is done
  3448.     here.  Any new delay slots created will hopefully be filled in the
  3449.     next pass around the loop in dbr_schedule.
  3450.  
  3451.     * expr.c (emit_push_insn): Don't try to compute a SUBREG of a
  3452.     hard register in a non-integer mode when pushing a "partial" arg.
  3453.  
  3454.     * recog.c (validate_change, apply_change_group): After reload, ensure
  3455.     that operands meet the constraints by calling constrain_operands.
  3456.     (validate_replace_rtx_1): Consider two rtx equal if they refer to
  3457.     the same register.
  3458.  
  3459.     * jump.c (jump_optimize): Extend change of Oct 16th to handle
  3460.     the other usage of find_equiv_reg; remove invalid death notes there.
  3461.  
  3462.     * rs6000.md, tm-rs6000.h, out-rs6000.c, xm-rs6000.h, make-rs6000:
  3463.     New files.
  3464.  
  3465.     * out-a29k.c (extract_subword): Use gen_{high,low}part from
  3466.     an FP CONST_DOUBLE if host and target float formats are the same
  3467.     or REAL_IS_NOT_DOUBLE.
  3468.  
  3469.     * out-romp.c (output_fpop, output_fpops): Provide fr0 as a scratch
  3470.     register unless it is used in the insn.
  3471.  
  3472.     * romp.md: In combined set CC0 and move, optimize case where move
  3473.     is nop.
  3474.     (DF moves): Fix typo in generation of `get' insn.
  3475.     Don't split if input is CONST_DOUBLE because we can't easily
  3476.     generate the proper constants.
  3477.     (call patterns): Copy data area address via a pseudo to allow
  3478.     better CSE'ing.
  3479.  
  3480.     * tm-romp.h (RTX_COSTS): Memory is expensive, except for a reference
  3481.     to our own data area, which is very cheap.
  3482.     (ADDRESS_COST): References to the constant pool are as cheap as
  3483.     register + offset, since that's what it will be.
  3484.  
  3485.     * emit-rtl.c (gen_{low,high}part): Can often extract word from FP
  3486.     CONST_DOUBLE when host and target floating formats agree.
  3487.     (add_insn_after): No longer static.
  3488.  
  3489.     * reload1.c (reg_equiv_memory_loc): Renamed from reg_equiv_stack_slot
  3490.     and now static.
  3491.     (reload): If have equivalence with constant that is not a legitimate
  3492.     constant operand, force it into memory and handle this as an
  3493.     equivalence to memory.
  3494.     * reload.h (reg_equiv_stack_loc): Deleted.
  3495.  
  3496. Wed Oct 17 20:50:58 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3497.  
  3498.     * gcc.c, cccp.c (main): Use TARGET_VERSION if -v.
  3499.  
  3500.     * expmed.c (extract_bit_field): Typo in last change.
  3501.  
  3502.     * Makefile.in (tmpgnulib): Support assembler files named *.asm.
  3503.  
  3504.     * gcc.c (do_spec_1): Null-terminate error message.
  3505.  
  3506.     * sdbout.c (sdbout_symbol): Handle subreg as DECL_RTL.
  3507.     This happens for vars from the parms of inline functions.
  3508.     * dbxout.c (dbxout_symbol): Likewise.
  3509.  
  3510.     * genattr.c (fancy_abort): New function, as in gen*.c.
  3511.  
  3512. Wed Oct 17 14:53:48 1990  Michael I. Bushnell  (mib at geech.ai.mit.edu)
  3513.  
  3514.     * pcp.h: New file.
  3515.  
  3516.     * cccp.c: Support use of precompiled files
  3517.     Include "pcp.h".
  3518.     (no_precomp, stringlist, stringlist_tailp): New variables. 
  3519.     (union hashval): New field `keydef'.
  3520.     (enum nodetype): New alternative `T_PCSTRING'.
  3521.     (main): Support -noprecomp.
  3522.     Use write_output to write output.
  3523.     (rescan): Call pcstring_used for T_PCSTRING symbols.
  3524.     (do_include): New local variables pcftry, pcfname, pcf, pcfbuf, 
  3525.     pcfbuflimit, and pcfnum.
  3526.     Check for possible use of precompiled files.
  3527.     (check_precompiled): New function.
  3528.     (check_preconditions): New function.
  3529.     (pcfinclude): New function.
  3530.     (pcstring_used): New function.
  3531.     (write_output): New function.
  3532.     (create_definition): New function.
  3533.     (do_define): Moved most of the work into create_definition.
  3534.     (dump_single_macro): New function.
  3535.     (dump_all_macros): Moved most of the work into dump_single_macro.
  3536.     (dump_defn_1): New argument OF.
  3537.     (dump_arg_n): New argument OF.
  3538.  
  3539.     * cccp.c: Support generation of precompiled files
  3540.     (pcp_outfile, pcp_inside_if): New variables.
  3541.     (struct definition): New field `predefined'.
  3542.     (main): Support -pcp.
  3543.     (rescan): Don't expand macros outside #if during -pcp.
  3544.     (special_symbol): Error for most special symbols during #if in -pcp.
  3545.     Output precondition for T_CONST and T_SPEC_DEFINED symbols.
  3546.     (eval_if_expression): Set and clear pcp_inside_if.
  3547.     (do_ifxdef): Output preconditions.
  3548.  
  3549. Tue Oct 16 13:22:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3550.  
  3551.     * stor-layout.c (layout_record): For PCC_BITFIELD_TYPE_MATTERS,
  3552.     make it true that zero-length field affects alignment of next field.
  3553.  
  3554.     * rtlanal.c (get_integer_term, get_related_value): Moved from cse.c.
  3555.  
  3556.     * jump.c (jump_optimize): When reusing value via find_equiv_reg,
  3557.     delete obsolete death note.
  3558.  
  3559.     * expmed.c (extract_bit_field, store_bit_field):
  3560.     Handle fields wider than a word.
  3561.     Restrict special case for word-sized field to aligned words.
  3562.  
  3563.     * expmed.c (extract_bit_field, store_bit_field): Don't let
  3564.     BESTMODE be bigger than the insn can handle.
  3565.  
  3566.     * Makefile.in (tmpgnulib): Fix typos handling LIBFUNCS_EXTRA.
  3567.  
  3568.     * cccp.c (handle_directive): Turn on code to handle # LINENUM,
  3569.     and move initializations past the label `old_linenum'.
  3570.  
  3571.     * c-decl.c (grokdeclarator): If traditional, make bitfields unsigned.
  3572.     (finish_struct): Don't do that here.
  3573.  
  3574.     * fixincludes (CTRL): Don't put quotes around a quote.
  3575.  
  3576.     * stddef.h (size_t): Also inhibit if _SIZE_T_.
  3577.  
  3578. Mon Oct 15 13:15:30 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3579.  
  3580.     * c-decl.c (grokdeclarator): Make flag_signed_bitfields work
  3581.     for int and for typedefs.
  3582.  
  3583. Sun Oct 14 21:28:32 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3584.  
  3585.     * flow.c (life_analysis): No hard regs for any pseudos live at setjmp.
  3586.  
  3587.     * c-decl.c (duplicate_decls): Don't suppress warning for fn defn
  3588.     after implicit declaration, if fn has already been defined.
  3589.  
  3590. Fri Oct 12 15:54:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3591.  
  3592.     * c-parse.y (xdecls): Allow ellipsis after parm decls.
  3593.     Call c_mark_varargs.
  3594.     * c-decl.c (start_function): Clear c_function_varargs.
  3595.     (c_mark_varargs): New function.     Set it.
  3596.     (store_parm_decls): Maybe call mark_varargs.
  3597.     * function.c (init_function_start): Clear current_function_varargs.
  3598.     (mark_varargs): New function.  Set it.
  3599.  
  3600. Thu Oct 11 13:15:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3601.  
  3602.     * genattrtab.c (fancy_abort): New function, as in gen*.c.
  3603.  
  3604.     * expr.c (saveregs_value): New variable.
  3605.     (init_expr, save_expr_status, restore_expr_status):
  3606.     Init, save, restore the variable.
  3607.     (expand_builtin): Don't call __builtin_saveregs twice in one function.
  3608.  
  3609.     * va-*.h: Rename all structure fields to start with __.
  3610.     * va-pyr.h: Rename variables also.
  3611.     (va_start): Delete the unmatched {.
  3612.     (va_end): Now a nop.
  3613.  
  3614. Wed Oct 10 22:03:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3615.  
  3616.     * va-sparc.h (__va_ctl): Rename fields to start with __.
  3617.  
  3618. Tue Oct     9 12:55:48 1990  Michael Meissner  (meissner at osf.org)
  3619.  
  3620.     * Allow configuration to specify size of a wide character.
  3621.     (WCHAR_TYPE_SIZE): New parameter.
  3622.     (WCHAR_UNSIGNED): New parameter, says whether type is signed.
  3623.  
  3624.     * c-decl.c (WCHAR_TYPE_SIZE): Define if not defined.
  3625.     (WCHAR_UNSIGNED): Likewise.
  3626.     (wchar_type_node, signed_wchar_type_node, unsigned_wchar_type_node):
  3627.     (wchar_array_type_node): New variables.
  3628.     (init_decl_processing): Init them.
  3629.     * c-tree.h: Make them extern.
  3630.  
  3631.     * c-common.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Define them.
  3632.     (combine_strings): Handle them.
  3633.     * c-parse.y (init_lex, yylex): Likewise.
  3634.  
  3635.     * c-typeck.h (digest_init): Use wchar_type_node and
  3636.     signed_wchar_type_node to get the base type of wide strings, rather
  3637.     than using int and unsigned.
  3638.  
  3639. Tue Oct     9 14:16:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3640.  
  3641.     * expmed.c (extract_bit_field): Typo; section for extv used extzv.
  3642.  
  3643.     * c-typeck.c (digest_init): Error if union has no name field.
  3644.     (process_init_constructor): For union, use first named field.
  3645.  
  3646.     * flow.c (propagate_block): Include NOTE at end of block in scan.
  3647.  
  3648.     * fixincludes: Fix missing semicolon in rstat.h.
  3649.  
  3650.     * cccp.c (main): Record the option names used for assertions.
  3651.     Call make_assertion properly.
  3652.  
  3653. Tue Oct     9 06:18:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3654.  
  3655.     * cse.c (fold_rtx): Call find_best_addr before seeing if we know
  3656.     what is located at that address.
  3657.     Don't try to return the contents of an ADDR_DIFF_VEC table; we have
  3658.     no simple way of representing it.
  3659.     (cse_insn): Detect SRC == DEST even when DEST is not the canonicalized
  3660.     form of the value represented by SRC.
  3661.  
  3662.     * loop.c (scan_loop): Don't set THRESHOLD until LOOP_HAS_CALL
  3663.     has been set.
  3664.     (struct induction): Add field MEM_MODE.
  3665.     (find_mem_givs, combine_givs_p): Record mode used to access memory
  3666.     when making DEST_ADDR giv and use it to test validity of
  3667.     derived address.
  3668.  
  3669.     * jump.c (delete_jump): No longer static.
  3670.     (invert_jump): Allow changing RETURNs to branches and vice versa.
  3671.     Now returns success/failure indication like redirect_jump.
  3672.     * rtl.h (delete_jump): Define.
  3673.  
  3674.     * calls.c (store_one_arg): Don't expand a `partial' arg into
  3675.     arg->stack and don't set arg->value to arg->stack_slot for
  3676.     such args.
  3677.     Clean up by breaking out common code.
  3678.  
  3679. Mon Oct     8 15:09:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3680.  
  3681.     * loop.c (can_eliminate_biv_p): Insist that mult_val be positive.
  3682.  
  3683.     * Makefile.in (insn-*): Remove semicolon from these rules.
  3684.     (INSTALL_PROGRAM, INSTALL_FILE): New variables.
  3685.     (install-*): Use those variables.
  3686.     (mandir): Default based on manext.
  3687.  
  3688. Mon Oct     8 10:57:14 1990  Michael Tiemann  (tiemann at cygnus.com)
  3689.  
  3690.     * stmt.c (expand_catch_default): Return 1 if EXCEPT_STACK is
  3691.     nonzero.
  3692.  
  3693.     * c-decl.c (finish_enum): Argument to floor_log2 in
  3694.     calculation of negprecision was not negated.
  3695.  
  3696. Mon Oct     8 06:50:15 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3697.  
  3698.     * rtl.h (INSN_ANNULLED_BRANCH_P, INSN_FROM_TARGET_P): New fields.
  3699.  
  3700. Sun Oct     7 23:33:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3701.  
  3702.     * tm-i386v.h (STARTFILE_SPEC): Handle -p here.
  3703.     (LIB_SPEC): Not here.
  3704.  
  3705. Thu Oct     4 05:06:02 1990  Michael Tiemann  (tiemann at cygnus.com)
  3706.  
  3707.     * gcc.c (default_compilers): Define __OPTIMIZE__ for %{O*}, not just
  3708.     %{O}. This permits the use of -O2, -O3, etc., with predictable
  3709.     results.
  3710.  
  3711.     * expr.c (expand_expr): Do not build new cleanups for
  3712.     TARGET_EXPRs.  Their cleanups are now handled entirely by the
  3713.     language-specific code that causes them to be generated.
  3714.  
  3715.     * function.c ({push,pop}_temp_slots): Do not change
  3716.     temp_slot_level if within a sequence.  GNU C++ must be able to
  3717.     emit a sequence it is building anywhere at the level the sequence
  3718.     was initiated.    If the level is changed when building a sequence,
  3719.     temporaries could be unwittingly shared.
  3720.  
  3721.     * cplus-tree.def: change print strings for NEW_EXPR and
  3722.     CPLUS_CATCH_DECL.
  3723.  
  3724.     * cplus-dem.c (do_type): Support `long long' types.
  3725.  
  3726.     * cplus-decl.c (finish_file): No longer try to emit _init,_fini
  3727.     records for GNU C++.  This was supposed to help the SunOS dynamic
  3728.     linker link C++ code, but it turned out not to work.
  3729.  
  3730.     * cplus-decl.c ({start,finish}_function): Don't emit an extra
  3731.     binding contour if not in a constructor or destructor.    It is not
  3732.     needed, and saves writing out unneeded debugging info.
  3733.  
  3734.     * cplus-class.c (build_method_call): Conditionalize handling of
  3735.     wrappers and operator->(); these are now only compiled if ESKIT is
  3736.     #defined.
  3737.  
  3738.     * cplus-decl.c (define_label): Updated to treat labels in the same
  3739.     new fashion that c-decl.c treats them.
  3740.  
  3741.     * cplus-*.c: C++ front-end files now support a generic
  3742.     class-browser interface.  It is up to some adventurous hacker to
  3743.     implement the class browser.
  3744.  
  3745.     * cplus-*.c: C++ front-end files no longer #include rtl.h.
  3746.  
  3747. Sun Sep 30 15:53:02 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3748.  
  3749.     * cccp.c (make_assertion): New function.
  3750.     (main): Handle -A by calling make_assertion.
  3751.     -A- gets rid of predefined macros and those specified earlier.
  3752.  
  3753.     * print-tree.c (print_node_brief): Declare i for printing REAL_CST.
  3754.  
  3755.     * recog.c (immediate_operand, nonmemory_operand): Don't accept
  3756.     integer constants if caller wants a floating mode.
  3757.  
  3758. Sat Sep 29 18:40:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3759.  
  3760.     * reload1.c (emit_reload_insns): Handle preserving death info
  3761.     with find_equiv_reg.
  3762.  
  3763.     * reload.c (find_equiv_reg): Handle INSN_CLOBBERS_REGNO_P.
  3764.  
  3765.     * fixincludes: For link pointing outside /usr/include,
  3766.     use $x rather than $dest.
  3767.  
  3768.     * optabs.c (expand_float, expand_fix): Use dconst1, not 1.0.
  3769.  
  3770. Sat Sep 29 06:38:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3771.  
  3772.     * emit-rtl.c (try_split): Use emit_insn_after and delete_insn to
  3773.     ensure that the correct insn chain is maintained in the presence of
  3774.     SEQUENCEs; be careful if the insn being split has a following BARRIER.
  3775.     * jump.c (delete_insn): Correctly update insn chain when deleting
  3776.     insn following or preceeding a SEQUENCE.
  3777.  
  3778. Fri Sep 28 16:07:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3779.  
  3780.     * c-parse.y (yylex): Use REAL_VALUE_TRUNCATE for `f' suffix.
  3781.  
  3782.     * fold-const.c (const_binop): Don't initialize REAL_VALUE_TYPE decls.
  3783.  
  3784. Thu Sep 27 14:06:37 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3785.  
  3786.     * expr.c (expand_expr): Set MEM_VOLATILE_P from TREE_THIS_VOLATILE.
  3787.  
  3788. Wed Sep 26 00:21:23 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3789.  
  3790.     * tm-mips-news.h: New file.
  3791.  
  3792.     * out-i860.c (output_size_for_block_move): Don't decrement.
  3793.     (output_block_move): Decrement initial storing address instead.
  3794.  
  3795.     * c-parse.y (yylex): Always try unsigned int if `u' is written.
  3796.  
  3797.     * c-typeck.c (build_unary_op): Don't let &* make an lvalue.
  3798.  
  3799.     * c-parse.y (initlist): Use [N] rather than case N: for array index.
  3800.  
  3801.     * tm-seq386.h (LINK_SPEC): Define it.
  3802.  
  3803.     * c-parse.y (yylex): Don't try signed int for nondecimal constant
  3804.     if -traditional.  Improve messages for -Wtraditional.
  3805.  
  3806.     * stor-layout.c (layout_record): Avoid using DECL_SIZE_UNIT.
  3807.  
  3808.     * jump.c (jump_optimize): Scan all insns for label refs.
  3809.     (mark_jump_label): Quickly ignore uninteresting rtl types.
  3810.     * rtl.def (INSN, CALL_INSN): Add a slot for JUMP_LABEL.
  3811.  
  3812.     * jump.c (jump_optimize): Try combining stack adjusts with pushes.
  3813.  
  3814. Mon Sep 24 07:31:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3815.  
  3816.     * stmt.c (expand_computed_goto): Emit barrier after jump.
  3817.  
  3818.     * expr.c (case LABEL_DECL): Return a MEM, so we can take its
  3819.     address; correctly form LABEL_REF.
  3820.  
  3821. Sun Sep 23 22:54:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3822.  
  3823.     * loop.c (struct movable): Delete field SET_EQUAL; new field MOVE_INSN.
  3824.     (scan_loop): Only use REG_EQUAL note under very restricted
  3825.     cirsumstances.    Set MOVE_INSN field in movables when appropriate.
  3826.     (combine_movables): Simplify matching test now that we only have one
  3827.     source field.
  3828.     (move_movables): Handle MOVE_INSN movables by emitting a new move
  3829.     insn in front of the loop.
  3830.     Correct typo in checking for CALL_INSN.
  3831.     Don't try to make a REG_EQUAL note.
  3832.     (count_loop_regs_set): Remove extraneous assignment to MAY_NOT_MOVE.
  3833.  
  3834. Sun Sep 23 14:59:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3835.  
  3836.     * cccp.c (S_ISREG): Define it unless overridden.
  3837.     (main, finclude): Use that.
  3838.  
  3839.     * reload1.c (reload): If insn after a function call uses the
  3840.     function value, and that reg is spilled, and the insn might
  3841.     use it for reloading, add an extra need.
  3842.     (reload_as_need): Detect such insns for new arg to choose_reload_regs.
  3843.     (choose_reload_regs): In that case, don't choose function value reg.
  3844.  
  3845.     * tm-convex1.h, tm-convex2.h (CPP_SPEC): Define __NO_INLINE_MATH.
  3846.  
  3847. Sun Sep 23 07:52:32 1990  Michael Tiemann  (tiemann at cygnus.com)
  3848.  
  3849.     * version.c (version_string): Bumped to 1.90.02.
  3850.  
  3851.     * final.c (leaf_function): Variable now non-static.
  3852.     * final.c (only_leaf_regs_used): Function now non-static.
  3853.     * final.c (leaf_function_p): Move initialization of
  3854.     `leaf_function' from here...
  3855.     * toplev.c (compile_file): ...to here.    We want to know the
  3856.     value of `leaf_function' when we perform code reorginization.
  3857.     * final.c (leaf_function_p): If profiling arcs, we cannot have
  3858.     a leaf function.  Also, we have to look at insns in
  3859.     `epilogue_delay_list' to know that all our constraints are
  3860.     satisfied.
  3861.     * final.c (only_leaf_regs_used): Have to look in
  3862.     `epilogue_delay_list' to know that all our constraints are
  3863.     satisfied.
  3864.  
  3865.     * toplev.c (warning_with_file_and_line,warning): Declare third
  3866.     argument V3 for warnings that require 3 `%' expressions in S.
  3867.     * toplev.c (strip_off_ending): New helper function that removes
  3868.     a GCC-recognized filename extension.  Call this function in
  3869.     GCC instead of expanding it inline in C code everywhere.
  3870.  
  3871.     * sched.c (schedule_block): The last basic block does not have
  3872.     no live registers.  Also, check that we don't copy from an
  3873.     entry in `basic_block_live_at_start' that does not exist.
  3874.     * sched.c (update_reg_first_use): When splitting insns, the
  3875.     insn that is in REG_FIRST_USE might become a NOTE, and a new
  3876.     insn become the insn that should be considered the first use.
  3877.     `update_first_use' keeps REG_FIRST_USE up to date.
  3878.     * sched.c (update_links): Call note_stores with
  3879.     `update_first_use' when an insn splits.
  3880.  
  3881. Sun Sep 23 00:05:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3882.  
  3883.     * c-decl.c (grokdeclarator): Put var array bound in save_expr.
  3884.  
  3885. Sat Sep 22 14:01:00 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3886.  
  3887.     * tree.c (build_index_type): Don't hash variable-bound type.
  3888.  
  3889.     * c-decl.c (start_decl): Error here if var-size object initialized.
  3890.     (grokdeclarator, finish_struct): Record types & decls
  3891.     with array sizes not written as constants.
  3892.     * c-tree.h (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): New macros.
  3893.  
  3894.     * tm-aix386.h (LIB_SPEC): Different library name for -p.  Always -lc.
  3895.     (LINK_SPEC): Don't pass -lg or -g.
  3896.     (CPP_PREDEFINES): Define _I386 and _AIX.  Don't define unix.
  3897.     (SDB_DEBUGGING_INFO): Define it.
  3898.     (DBX_DEBUGGING_INFO): Undefine it.
  3899.     (ASM_FILE_START): Output .noopt if not optimizing.
  3900.     (PCC_BITFIELD_TYPE_MATTERS): Define it.
  3901.     (FUNCTION_PROFILER): Add definition.
  3902.  
  3903. Fri Sep 21 16:26:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3904.  
  3905.     * function.c (current_function_epilogue_list): Define this here.
  3906.     * reorg.c: Not here.
  3907.  
  3908. Fri Sep 21 13:11:11 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3909.  
  3910.     * varasm.c (assemble_external_libcall): Frob SYMBOL_REF_USED here.
  3911.  
  3912. Thu Sep 20 15:29:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3913.  
  3914.     * expr.h (struct optab): Field libfunc, an rtx, replaces lib_call.
  3915.     * rtl.h (SYMBOL_REF_USED): New macro.
  3916.     * optabs.c (init_optabs): Initialize that field properly.
  3917.     Also initialize new variables *_libfunc.
  3918.     (various functions): Use those vars; use libfunc field.
  3919.     * expr.c (convert_move, emit_block_move, clear_storage): Use the vars.
  3920.     (emit_push_insn, expand_assignment): Likewise.
  3921.  
  3922. Thu Sep 20 13:51:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3923.  
  3924.     * out-a29k.c (current_function_epilogue_delay_slot): Renamed from
  3925.     epilogue_delay_slot.
  3926.  
  3927.     * romp.md (movdi): Fix missing short/long qualifier on memory ref.
  3928.     (SFmode/DFmode move patterns): Add explicit alternatives for
  3929.     storing and loading general registers from memory; also add
  3930.     DEFINE_SPLITs for these cases for DFmode.
  3931.     (negsf2,negdf2): Don't use XOR if an operand is a hard FP register.
  3932.  
  3933.     * tm-romp.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Use correct
  3934.     register numbers for FP registers.
  3935.  
  3936.     * output.h (current_function_epilogue_delay_list): New var.
  3937.     * function.c: Include output.h and initialize new var above.
  3938.     * Makefile.in (function.o): Now includes output.h.
  3939.     * reorg.c (epilogue_delay_list): Renamed to
  3940.     current_function_epilogue_delay_list.
  3941.  
  3942.     * final.c (final_scan_insn): Don't delete no-op insn if in delay slot
  3943.     or if we have already pre-scanned.
  3944.  
  3945.     * genconfig.c (max_insns_per_split): Rename from
  3946.     max_insns_per_split_flag and default to 1 instead of 0.
  3947.  
  3948.     * genattrtab.c (n_comma_elts): Return zero for null string.
  3949.  
  3950.     * sdbout.c (MIN,MAX): Add to here; required by recent changes.
  3951.  
  3952.     * expr.c (safe_from_p): A MEM rtx is not safe from an INDIRECT_REF.
  3953.  
  3954.     * c-parse.y (ridpointers): Move definition in front of first use.
  3955.  
  3956.     * reorg.c (mark_referenced_resources): Allow for CODE_LABELs between a
  3957.     CALL_INSN and USE insns preceeding it.
  3958.     (mark_set_resources): Likewise, for following CLOBBERs.
  3959.  
  3960. Wed Sep 19 17:45:49 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3961.  
  3962.     * assert.h (printf): Don't define; should be in stdio.h.
  3963.  
  3964.     * rtl.h (PUT_REG_NOTE_KIND): New macro.
  3965.     * sched.c (attach_deaths): Use it.
  3966.  
  3967.     * reorg.c (mark_referenced_resources): If we put insns to load
  3968.     parameters into the delay slot of a CALL, ignore the USE insns
  3969.     for those parameters.
  3970.  
  3971.     * function.c (fixup_var_refs_1): Don't call fixup_memory_subreg unless
  3972.     its would-be operand is a SUBREG.
  3973.  
  3974. Wed Sep 19 00:26:59 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3975.  
  3976.     * print-tree.c (print_node): Indent before printing RTL.
  3977.  
  3978.     * Makefile.in (protoize.o, unprotoize.o): Look for SYSCALLS.c.X
  3979.     in libsubdir.
  3980.  
  3981. Tue Sep 18 21:55:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  3982.  
  3983.     * cse.c (fold_rtx): For MEM with constant address, split the
  3984.     address into possible base and offset; ensure constant pool
  3985.     value is same mode as our reference unless we are getting a
  3986.     word of a DImode CONST_INT.
  3987.     Treat SYMBOL_REF and LABEL_REF as constants.
  3988.     If we are getting a word at a constant offset from a jump table,
  3989.     replace with the contents of that jump table entry.
  3990.     (cse_insn): When folding jump to variable location (e.g., tablejump),
  3991.     LABEL_REF is the cheapest of all, since the branch would be simple.
  3992.     Special-case changing variable branch to normal unconditional
  3993.     because the RTL may be different (e.g., the variable branch may
  3994.     include a USE).
  3995.  
  3996. Tue Sep 18 18:33:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  3997.  
  3998.     * toplev.c (count_error): Handle warnings_are_errors.
  3999.     (W_options): Handle -Werror.
  4000.  
  4001. Mon Sep 17 00:02:12 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4002.  
  4003.     * c-decl.c (lookup_label): Use void as type of label.
  4004.     * stmt.c (label_rtx): No longer static.
  4005.     * expr.c (expand_expr): Handle LABEL_DECL.
  4006.  
  4007. Sun Sep 16 16:27:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4008.  
  4009.     * expr.c (expand_builtin): Error for __builtin_nextarg
  4010.     if function definition doesn't have `...'.
  4011.  
  4012.     * expmed.c (store_bit_field): Adjust BITPOS to UNIT all at once.
  4013.     for insv, use mode of operand 3 instead of SImode.  Define MAXMODE.
  4014.     Adjust XBITPOS along with mode of XOP0.
  4015.     (extract_bit_field): Adjust XBITPOS along with mode of XOP0.
  4016.     for extv and extzv, use mode of operand 3 thoroughly instead of SImode.
  4017.  
  4018.     * sdbout.c (CHAR_TYPE_SIZE,...): Default definitions of these macros.
  4019.     (plain_type_1): Use those macros to distinguish int and floating types.
  4020.  
  4021.     * toplev.c (rest_of_decl_compilation): Output TYPE_DECL here for sdb
  4022.     only if top_level.
  4023.  
  4024.     * c-parse.y (unary): Don't forget to look up the label.
  4025.  
  4026.     * c-typeck.c (build_conditional_expr): Don't skip arg promotion.
  4027.  
  4028. Sun Sep 16 14:54:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4029.  
  4030.     * combine.c (try_combine): If we don't recognize the combined insn,
  4031.     try it without any CLOBBERs.
  4032.  
  4033.     * final.c (final_scan_insn): Prevent CC tracking from thinking
  4034.     that the CC was set by an insn in the delay slot of a CALL_INSN.
  4035.  
  4036.     * expmed.c (init_expmed, expand_divmod): Allow machine to have
  4037.     low cost specified for divides by powers of two if it can do it by
  4038.     a method that if cheaper than the normal shift/branch/adjust mechanism.
  4039.  
  4040.     * cse.c (fold_rtx): When putting constant last, ensure that the
  4041.     resulting insn is valid.
  4042.  
  4043.     * objc-actions (finish_objc): Remove dup defn of gen_declaration_file.
  4044.  
  4045.     * objc-parse.y (ridpointers, token_buffer): Define before use.
  4046.  
  4047.     * reload1.c (scan_paradoxical_subregs): Declare correctly.
  4048.  
  4049.     * tm-romp.h (ENCODE_SEGMENT_INFO): Use INTEGRATED bit to mark
  4050.     SYMBOL_REFs that are addresses of functions (really their data blocks).
  4051.     (LEGITIMATE_CONSTANT_P): Data block addresses of functions are not
  4052.     valid operands.
  4053.     * out-romp.c (symbolic_operand): Likewise.
  4054.     * romp.md (call*): emit_move_insn will now do force_const_mem
  4055.     so it needn't be done explicitly.
  4056.  
  4057.     * out-romp.c (output_fpop): Work around yet another RT fp bug;
  4058.     cannot merge output and first operand for SFmode if general reg.
  4059.  
  4060.     * romp.md: Add new pattern to match combination of copy and test.
  4061.     Use nilo instruction to set CC.
  4062.  
  4063. Fri Sep 14 07:07:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4064.  
  4065.     * c-tree.h: Define all *_type_node trees defined in c-decl.c, in the
  4066.     same order as defined there.
  4067.  
  4068. Fri Sep 14 08:39:17 1990  Michael Tiemann  (tiemann at cygnus.com)
  4069.  
  4070.     * cplus-typeck.c (build_c_cast): Convert READONLY_DECLs to make up
  4071.     for the fact that we do not call `default_conversion' anymore.
  4072.  
  4073.     * function.c (instantiate_virtual_regs): If the function is inline,
  4074.     we don't need to worry about making valid rtl, but we do need to
  4075.     worry about instantiating all virtual registers.  Otherwise we must
  4076.     make the rtl valid, and we have other opportunities to eliminate the
  4077.     virtual registers during the compilation.
  4078.  
  4079. Thu Sep 13 16:00:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4080.  
  4081.     * reload.c (MATCHES): Check for different rtx's with same reg number.
  4082.  
  4083.     * fixincludes: Discard `.' from value of `files'.
  4084.  
  4085.     * c-parse.y (unary_expr): Use unary && to get address of label.
  4086.     (stmt): Handle `goto *EXPRESSION;'.
  4087.     * stmt.c (expand_computed_goto): New function.
  4088.  
  4089.     * gstdarg.h: New name for stdarg.h.
  4090.     * Makefile (install-headers): Rename gstdarg.h while installing it.
  4091.  
  4092.     * sdbout.c (PUT_SDB_LAST_DIM): Get rid of SDB_DELIM.
  4093.     (plain_type): Output accumulated array dims and size.
  4094.     (plain_type_1): Eliminate arg NOSIZE.  Save up dims and size.
  4095.     Call self rather than plain_type for pointers and functions.
  4096.     (sdbout_array_type, sdbout_array_depth): Functions deleted.
  4097.  
  4098. Thu Sep 13 16:12:15 1990  Michael Tiemann  (tiemann at cygnus.com)
  4099.  
  4100.     * cplus-class.c (build_method_call): Fix typo in deciding whether to
  4101.     do hairy or trivial pointer conversions on `this'.
  4102.  
  4103.     * cplus-tree.c (layout_vbasetypes): Don't double-count space taken
  4104.     up by virtual baseclasses.
  4105.  
  4106. Wed Sep 12 18:14:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4107.  
  4108.     * tm-m68k.h: Use asm_fprintf widely.
  4109.     (REG_PREFIX, IMMEDIATE_PREFIX, LOCAL_LABEL_PREFIX, USER_LABEL_PREFIX):
  4110.     New macros.
  4111.  
  4112.     * final.c (asm_fprintf): New function.
  4113.  
  4114. Wed Sep 12 06:07:50 1990  Michael Tiemann  (tiemann at cygnus.com)
  4115.  
  4116.     * cplus-dbxout.c (dbxout_type): Output basetype size and offset info
  4117.     in bits, not bytes.
  4118.  
  4119.     * cplus-decl.c (finish_{decl,function}): Set CLASSTYPE_ASM_WRITTEN
  4120.     bit of types used by non-extern VAR_DECLs.  Set it also for types of
  4121.     PARM_DECLs and return types of functions defined in the file being
  4122.     compiled.
  4123.  
  4124. Tue Sep 11 13:21:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4125.  
  4126.     * sdbout.c (plain_type_1): New argument NOSIZE.     Inhibits size output.
  4127.     (sdbout_array_type): Call plain_type_1 directly; set NOSIZE.
  4128.  
  4129.     * sdbout.c (sdbout_array_type): New argument DEPTH.
  4130.     Don't output more than SDB_MAX_DIM dimensions.
  4131.     (sdbout_array_depth): New function.
  4132.     (plain_type_1): Start DEPTH by calling sdbout_array_depth.
  4133.  
  4134.     * gnulib2.c (_bb_init_func): Library member now named _bb.
  4135.  
  4136.     * tree.h: Add comments.
  4137.  
  4138. Mon Sep 10 17:20:06 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4139.  
  4140.     * Makefile.in (install): Fix typo.
  4141.  
  4142.     * cccp.c (macarg1): With -traditional, backslash quotes chars.
  4143.  
  4144. Mon Sep 10 16:37:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4145.  
  4146.     * jump.c (jump_optimize): Don't swap THEN and ELSE parts during jumps
  4147.     runs after reload.
  4148.  
  4149. Mon Sep 10 13:07:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4150.  
  4151.     * cccp.c (collect_expansion): Don't actually substitutee into a
  4152.     string if ANSI; just consider warning.
  4153.  
  4154.     * gnulib2.c (div_qrrnd for i386): Fix typo.  Rename some args.
  4155.  
  4156.     * sdbout.c (sdbout_array_type): New argument DEPTH.
  4157.     Don't output more than SDB_MAX_DIM dimensions.
  4158.     (plain_type_1): Start DEPTH at 1.
  4159.  
  4160. Sun Sep     9 22:02:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4161.  
  4162.     * out-a29k.c (gen_reg_operand): Exclude SUBREG of a special
  4163.     register.
  4164.  
  4165.     * cse.c: (fold_rtx): Get equivalent for register before seeing if
  4166.     memory reference is to constant pool.
  4167.     (cse_ins): Only call force_const_mem if we actually try to use
  4168.     the constant (i.e., we haven't found anything cheaper).
  4169.  
  4170. Sun Sep     9 21:49:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4171.  
  4172.     * ..._BIG_ENDIAN: Now expect definition to be 0 or 1.
  4173.     All refs and defs changed.
  4174.  
  4175.     * tm-mips.h (CPP_SPEC): Error for -EL (for -EB, if DECSTATION).
  4176.  
  4177.     * sdbout.c (sdbout_one_type): Set TREE_ASM_BEING_WRITTEN before
  4178.     recursion, and TREE_ASM_WRITTEN after.
  4179.  
  4180. Sat Sep     8 16:47:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4181.  
  4182.     * hard-params.c (main): Don't try to malloc all memory.
  4183.  
  4184. Sat Sep     8 16:38:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4185.  
  4186.     * reload1.c (reload): Set reg_equiv_constant if the equivalence
  4187.     is any constant, not just a legitimate constant operand.
  4188.  
  4189.     * final.c (get_attr_length, shorten_branches, final_scan_insn):
  4190.     If JUMP_TABLES_IN_TEXT_SECTION is defined, don't put jump tables
  4191.     in readonly data section, even if it exists.
  4192.  
  4193. Sat Sep     8 14:07:05 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4194.  
  4195.     * Makefile.in (bootstrap*): Pass null ALLOCA definition to recursive
  4196.     makes when compiling with GCC since it never needs alloca.c.
  4197.  
  4198.     * c-typeck.c (build_binary_op_nodefault): Warn for signed < unsigned.
  4199.     Controlled by -W.
  4200.  
  4201.     * tm-i386v4.h: New file.
  4202.  
  4203. Fri Sep     7 13:10:24 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4204.  
  4205.     * cccp.c (STDC_VALUE): New macro, defaulting to 1.
  4206.     (intialize_builtins): Use that.
  4207.  
  4208.     * m68k.md (movqi): `st' does not set cc's.
  4209.  
  4210. Fri Sep     7 07:49:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4211.  
  4212.     * genemit.c (gen_expand): Fix test for no C code.
  4213.     If no C code, no MATCH_DUPs, and only one insn to write, handle
  4214.     like DEFINE_INSN and return that insn rather than making a sequence.
  4215.  
  4216.     * emit-rtl.c (add_insn_after): If previous or next insn is a
  4217.     SEQUENCE, update the NEXT_INSN in the last insn in the SEQUENCE or
  4218.     PREV_INSN of the first, as appropriate.
  4219.     (emit_insn_before, emit_jump_insn_before, emit_note_before):
  4220.     Call add_insn_after.
  4221.  
  4222.     * stmt.c (check_for_full_enumeration_handling): If a switch whose index
  4223.     is an enumerated type contains labels for every enumeration value,
  4224.     make the label for the last value the default label since such a
  4225.     switch can never fall through.
  4226.  
  4227.     * genattr.c (fatal): Declare first arg correctly.
  4228.  
  4229.     * combine.c (try_combine): No longer check REG_FUNCTION_VALUE_P;
  4230.     its value shouldn't matter once RTL generation is complete.
  4231.     (subst): If NOT is present as an operand in commutative operation,
  4232.     put it last to reduce the number of required patterns.
  4233.  
  4234.     * out-romp.c (output_fpops): Align to word boundary before writing
  4235.     any floating-point blocks.
  4236.  
  4237.     * function.c (instantiate_virtual_regs_1): Fix typo in previous change.
  4238.     When a MEM must be copied, use copy_rtx; the PLUS may also be shared.
  4239.  
  4240. Thu Sep     6 15:19:42 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4241.  
  4242.     * gcc.c (do_spec_1): Don't add __ to -D if __ already present.
  4243.  
  4244.     * c-typeck.c (convert_for_assignment):
  4245.     Better warning for FCN * vs. void *
  4246.     Specific warning for char * vs. unsigned char *.
  4247.  
  4248. Thu Sep     6 14:52:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4249.  
  4250.     * reorg.c (find_basic_block): Return -1, not 0, if we can't find
  4251.     the basic block.
  4252.     (mark_target_live_regs): Clear PENDING_DEAD_REGS unconditionally.
  4253.     (relax_delay_slots): Don't call optimize_skip for unconditional jump.
  4254.     Only try to remove jump if it is a simple conditional or
  4255.     unconditional jump (but not a tablejump or similar such).
  4256.  
  4257.     * cse.c (invalidate, refers_to_mem_p, cse_rtx_addr_varies_p):
  4258.     Consider (plus (reg) (const_int)) to be a fixed address if REG
  4259.     is constant; old code just handled REG.
  4260.  
  4261.     * genrecog.c (enum routine_type): Use to distinguish two types of
  4262.     routines that we write: recog and split_insns.
  4263.     (make_split_sequence): Write out extern for gen_split_ function.
  4264.     (break_out_subroutines, write_subroutine, write_tree, main):
  4265.     Use new enum routine_type instead of passing "split" or "recog".
  4266.     (write_subroutine): Write correct type for splitting functions and
  4267.     return 0, not -1.
  4268.     (main): Write includes before declarations of gen_split_ functions
  4269.     since "rtx" is needed for them.
  4270.     * rtl.h (try_split, split_insns): Added definitions.
  4271.  
  4272. Wed Sep     5 16:20:07 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4273.  
  4274.     * Makefile.in (includes): Use proper directory.
  4275.  
  4276. Tue Sep     4 13:59:31 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4277.  
  4278.     * c-decl.c (store_parm_decls): Let extra_warnings control
  4279.     warnings about parms not declared.
  4280.  
  4281.     * flow.c (life_analysis): Move code to detect stack-adjust insns.
  4282.     It was unreachable.
  4283.  
  4284.     * gnulib.c, gnulib2.c (abort): #undef in case config.h defines it.
  4285.  
  4286. Mon Sep     3 17:50:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4287.  
  4288.     * calls.c (expand_call): If SETUP_INCOMIMG_VARARGS is defined, pass
  4289.     unnamed args in registers.
  4290.     * function.c (assign_parms): Call SETUP_INCOMING_VARARGS for
  4291.     stdargs as well as varargs; ensure we only call it once.
  4292.  
  4293.     * function.c (instantiate_virtual_regs_1): Don't assume all memory
  4294.     addresses are valid for all insns.
  4295.  
  4296. Sun Sep     2 22:17:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4297.  
  4298.     * expr.c (emit_library_call): Push all stack args, then load regs.
  4299.  
  4300.     * c-decl.c (c_build_type_variant): For an ARRAY_TYPE,
  4301.     put the qualifier into the array as well as the element.
  4302.     (grokdeclarator): When a field or variable is supposed to be
  4303.     a const or volatile array, make the array elements const or
  4304.     volatile, but also make the field or variable so.
  4305.  
  4306.     * c-decl.c (grokdeclarator): Turn off the warning for const or volatile
  4307.     function type when making an array.  It was useless.
  4308.  
  4309. Fri Aug 31 16:26:40 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4310.  
  4311.     * c-common.c (truthvalue_conversion): Let the
  4312.     language-specific code decide how to convert EXPR
  4313.     if it is not one of the special forms we recognize.
  4314.  
  4315. Fri Aug 31 15:08:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4316.  
  4317.     * gcc.c (execute): Use I instead of undefined var J if DEBUG defined.
  4318.  
  4319. Fri Aug 31 14:37:36 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4320.  
  4321.     * sdbout.c (sdbout_begin_block): Delete excess arg to sdbout_block.
  4322.  
  4323. Thu Aug 30 21:31:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4324.  
  4325.     * expmed.c (extract_bit_field): Fix typos in computations of UNIT.
  4326.  
  4327. Wed Aug 29 12:33:33 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4328.  
  4329.     * sdbout.c (sdbout_reg_parms): Don't advance parm twice.
  4330.  
  4331. Tue Aug 28 22:49:41 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4332.  
  4333.     * cccp.c (delete_newlines): New function.
  4334.     (macroexpand): Remove newlines from args used more than once.
  4335.  
  4336. Tue Aug 28 22:16:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4337.  
  4338.     * Makefile.in (sched.o): Add to list of files to compile.
  4339.  
  4340.     * c-parse.y (position_after_white_space): Declare with correct type.
  4341.  
  4342.     * fold-const.c (optimize_bit_field_compare): Fix typo.
  4343.  
  4344.     * reorg.c (split_insns): No longer need extern for this here.
  4345.  
  4346.     * toplev.c (sched_dump_file): Define.
  4347.     (compile_file): Initialize and print sched_time and sched2_time.
  4348.  
  4349.     * local-alloc.c (block_alloc): Fix typo in allocation of insn_map.
  4350.  
  4351.     * cse.c (cse_insn): Try related value in case where CONST is seen
  4352.     first and SYMBOL_REF later.
  4353.  
  4354. Tue Aug 28 16:26:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4355.  
  4356.     * cccp.c (main): Don't modify or validate arg of -D here.
  4357.     (make_definition): Do it all here.
  4358.  
  4359.     * function.c (assign_parms): Reenable `register' for parms.
  4360.  
  4361. Tue Aug 28 07:12:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4362.  
  4363.     * tm-a29k.h (CONST_COSTS): All CONST_INTs are cost zero; adjust
  4364.     SYMBOL_REF and CONST_DOUBLE costs to reflect their actual cost.
  4365.  
  4366.     * expr.c (expand_expr): Don't suppress EXPAND_SUM here if not Pmode.
  4367.     (expand_expr, case *_DECL): Return constant address if
  4368.     EXPAND_SUM or EXPAND_INTO_STACK in addition to EXPAND_CONST_ADDRESS;
  4369.     all of these cases will later call memory_address.
  4370.     (expand_expr, case COMPONENT_REF): Always make recursive call with
  4371.     EXPAND_SUM.
  4372.     (expand_expr, case PLUS_EXPR): Try to form constant if X + CONST and
  4373.     mode is Pmode without EXPAND_SUM; if not EXPAND_SUM, use force_operand.
  4374.     Check for MODE != Pmode with EXPAND_SUM here.
  4375.     (expand_expr, case MINUS_EXPR): Always process X - CONST_INT as
  4376.     X + (-CONST_INT)).
  4377.  
  4378. Sun Aug 26 23:10:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4379.  
  4380.     * c-decl.c (c_decode_option): Handle -funsigned-bitfields. 
  4381.     (grokdeclarator): Do the real work.
  4382.     (grokfield): Pass either FIELD or BITFIELD to grokdeclarator.
  4383.  
  4384.     * tm-att386.h (asm_output_common): Use SIZE, not ROUNDED.
  4385.  
  4386. Sat Aug 25 17:17:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4387.  
  4388.     * c-parse.y (unary_expr): Turn off handling of &...
  4389.     * c-decl.c (store_parm_decls): Turn off extra dummy parameter.
  4390.  
  4391.     * tm-att386.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): New macros.
  4392.     (BSS_SECTION_ASM_OP): New macro.
  4393.     (ASM_OUTPUT_LOCAL): Call bss_section, don't just print .bss.
  4394.  
  4395.     * combine.c (subst): Handle shift within mem, as multiplication.
  4396.  
  4397. Sat Aug 25 11:43:09 1990  Michael Tiemann  (tiemann at cygnus.com)
  4398.  
  4399.     * final.c (alter_cond): Handle CC_INVERTED.
  4400.  
  4401.     * conditions.h (CC_INVERTED): New flag indicating that the condition
  4402.     tested leaves the falgs set opposite to the condition tested.  This
  4403.     is unsafe for IEEE floating point operations, but useful for integer
  4404.     operations which can combine with condition-code setting operations.
  4405.  
  4406.     * c-parse.y (position_after_white_space): New function.     Skips
  4407.     all of the whitespace at the current location in the input
  4408.     file, taking NEXTCHAR into account.  Changed all callers of
  4409.     `skip_white_space' in grammar to use this function instead.
  4410.  
  4411.     * genrecog.c (main): Generate code which is more easily optimized by
  4412.     GCC's cse.  In particular, start each recognizer with the address of
  4413.     `recog_operands' in a register.
  4414.  
  4415.     * reload.c (combine_reloads): Can only combine reloads if the
  4416.     register we find can hold the entire output reload (i.e., SFmode
  4417.     register may not be suitable for combining with DFmode register).
  4418.  
  4419.     * optabs.c (have_sub2_insn): Fixed typo.
  4420.     * combine.c (combine_instructions): Fixed typo in comment.
  4421.  
  4422.     * function.c (expand_function_end): Emit a barrier after a RETURN
  4423.     jump.
  4424.  
  4425.     * Added diffs for new instruction scheduling code.
  4426.     * emit-rtl.c (try_split): Moved here from reorg.c and made
  4427.     public.     Both instruction scheduling and delayed branch
  4428.     filling now use the same code to split insns.
  4429.     * flags.h: Add new flags FLAG_SCHEDULE_INSNS for instruction
  4430.     scheduling before register allocation and
  4431.     FLAG_SCHEDULE_INSNS_AFTER_RELOAD for insn scheduling after
  4432.     register allocation.
  4433.     * recog.c (constrain_operands): Recognize pseudo registers as
  4434.     registers for the purpose of insn constraint matching before
  4435.     register allocation.  Otherwise, the insn scheduler assumes
  4436.     the operands will be memory, which is usually wrong (and
  4437.     causes it to build bad schedules).
  4438.     * sched.c (order_calls): New function.    For two CALL_INSNS in
  4439.     the rtl chain, we set up a constraint that the second
  4440.     CALL_INSN may not be scheduled to run before the first.
  4441.     (sched_analyze_*): Three kinds of dependencies (true, anti,
  4442.     and output) constrain the order in which insns can be
  4443.     rearranged and still preserve their execution semantics.
  4444.     We now handle dependencies for pseudo and hard register usage
  4445.     and for memory usage in these functions.
  4446.     (launch_links): The ordering of which newly ready insns to
  4447.     execute is now preserved according to their `priority' in the
  4448.     insn chain, and no longer on their order in the dependency
  4449.     list from which they were launched.
  4450.     (schedule_block): Removed support for trying to schedule insns
  4451.     taking branch delays into account.  Reorg.c should be hacked
  4452.     to understand which insns to pull into delay slots and which
  4453.     insns to leave alone.
  4454.     (schedule_block): (Re-)compute all register life information here.
  4455.     No longer dependent on flow to keep `basic_block_live_at_end'
  4456.     allocated.
  4457.     (schedule_insns): Recompute LABEL->BASIC BLOCK mapping, so we
  4458.     can compute register life information.
  4459.     * rtl.c (add_dependence): New function to add and remove insn
  4460.     dependencies.  If an insn (I2) must execute after another
  4461.     (I1), we add an INSN_LIST containing I1 to I2's    LOG_LINKS.
  4462.     If such an INSN_LIST is already in I2's LOG_LINKS, we don't
  4463.     add a second.
  4464.     (remove_dependence): Similar, but removes dependencies.     May
  4465.     not actually be needed.
  4466.     * toplev.c (compile_file,rest_of_compilation): Added code for
  4467.     dumping info about insn scheduling.
  4468.  
  4469. Fri Aug 24 17:24:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4470.  
  4471.     * Implement `aligned (INTEGER)' attribute for real.
  4472.     * c-parse.y (attrib): Really record info for `aligned' attribute.
  4473.     Don't warn for any integer alignment.
  4474.     (attribute_list): Make a list.
  4475.     (initdcl, notype_initdcl, component_declarator): Handle that info.
  4476.     * c-common.c (decl_attributes): New function.
  4477.  
  4478. Fri Aug 24 07:12:05 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4479.  
  4480.     * genattrtab.c (insn-config.h): This is really needed after all.
  4481.     * Makefile.in (genattrab.o): Show dependency on insn-config.h.
  4482.  
  4483.     * local-alloc.c (block_alloc): Don't update qty_birth for a
  4484.     register whose quantity is <= 0.
  4485.  
  4486.     * fold-const.c (decode_field_reference): Actually obtain unsigned
  4487.     type where one is wanted.
  4488.     (merge_component_references): Correctly test for mutually exclusive
  4489.     conditions.
  4490.  
  4491. Thu Aug 23 14:56:44 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4492.  
  4493.     * c-typeck.c (digest_initializer): No pedantic warning for string
  4494.     and array of unsigned char.
  4495.  
  4496.     * tree.c (get_identifier): Do id_clash_len stuff if length equals that.
  4497.  
  4498. Thu Aug 23 10:30:10 1990  Michael Tiemann  (tiemann at cygnus.com)
  4499.  
  4500.     * cplus-tree.h (CLASSTYPE_CID): Key off of TYPE_MAIN_VARIANT.
  4501.  
  4502. Thu Aug 23 06:44:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4503.  
  4504.     * out-romp.c (romp_pushes_stack): Don't count
  4505.     current_function_pretend_args_size in size of stack.
  4506.  
  4507. Wed Aug 22 18:00:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4508.  
  4509.     * tm-a29k.h, tm-a29kunix.h, xm-a29k.h, a29k.md, out-a29k.c: New files.
  4510.  
  4511.     * config.gcc (a29k-unix): New target.
  4512.  
  4513.     * calls.c (expand_call): Allow FUNCTION_ARG to return an EXPR_LIST
  4514.     specifying multiple registers to load.
  4515.     (store_one_arg): Likewise; also delete handling of fully-in-register
  4516.     case, which hasn't been handled here for a while.
  4517.     * expr.c (emit_library_call): Our subset of calling sequence for
  4518.     library routines does not include multiple registers for an arg.
  4519.  
  4520. Tue Aug 21 17:44:49 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4521.  
  4522.     * make-cc1.com: Compile and link version.c.
  4523.  
  4524.     * Makefile.in (install-gnulib): Create libg.a if none already.
  4525.  
  4526.     * expr.c (convert_move): Handle expand_unop retval not same as target.
  4527.  
  4528.     * reload.c (find_reloads): For register letters, don't win if BLK.
  4529.  
  4530.     * sdbout.c (sdbout_toplevel_data): Fix error message.
  4531.  
  4532.     * protoize.c (open): Prototype deleted.
  4533.  
  4534.     * flow.c (mark_set_1, mark_used_regs): Update reg_first_use.
  4535.     (allocate_for_life_analysis): Allocate and clear it.
  4536.     * local-alloc.c (block_alloc): Calculate INSN_MAP.
  4537.     Get first use of each reg from reg_first_use.
  4538.  
  4539.     * tm-vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Distinguish C from C++.
  4540.     (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Add a const data section.
  4541.     (ASM_OUTPUT_EXTERNAL): Use that section.
  4542.     (SELECT_SECTION): Go to that section when appropriate.
  4543.  
  4544. Tue Aug 21 18:26:47 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4545.  
  4546.     * reorg.c (fill_simple_delay_slots): Mark anything referenced by an
  4547.     insn that will be placed in a delay slot in the epilogue as being
  4548.     needed at the end of the function.
  4549.  
  4550.     * cse.c (constant_pool_entries_found): New static var.
  4551.     (cse_main): Initialize it.
  4552.     (use_related_value): Correctly look for registers in hash table.
  4553.     (fold_rtx): Fold constant pool entries to their constants and
  4554.     set constant_pool_entries_found.
  4555.     (cse_insn):  If we weren't able to place a constant in an insn
  4556.     and we have previously seen constant pool entries used, set up
  4557.     to try the constant pool entry also.
  4558.  
  4559. Mon Aug 20 12:14:27 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4560.  
  4561.     * function.c (assign_parms): Set LAST_NAMED for parm before dummy.
  4562.     See August 9 change in c-parse.y.
  4563.  
  4564.     * gcc.c (process_command): Split -oFOO into two arguments.
  4565.  
  4566.     * stmt.c (expand_asm_operands): Handle COMPONENT_REF and
  4567.     ARRAY_REF directly as output operands.    Avoids crash if BLKmode.
  4568.  
  4569.     * c-parse.y, cplus-parse.y, objc-parse.y: Include stdio before input.h.
  4570.     * input.h: Declare finput.
  4571.  
  4572.     * expr.c (emit_push_insn): Don't adjust for EXTRA separately
  4573.     if will have to adjust the stack anyway.
  4574.  
  4575.     * m68k.md (*sh*si3): On 68000, optimize case of >= 16 bits.
  4576.  
  4577.     * varasm.c (decode_rtx_const): Don't dereference a PLUS
  4578.     subexpression of a CONST twice.
  4579.  
  4580. Sun Aug 19 21:51:51 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4581.  
  4582.     * toplev.c (finput): Define here.
  4583.     * *-parse.y (lineno, finput): Duplicate definitions deleted.
  4584.  
  4585.     * global-alloc.c (find_reg): Test best_reg against 0,
  4586.     not first_pseudo_register.
  4587.  
  4588. Sun Aug 19 17:48:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4589.  
  4590.     * explow.c (plus_constant): If adding to constant pool constant,
  4591.     return a new one.
  4592.  
  4593.     * genattrtab.c: Need not include insn-config.h.
  4594.  
  4595. Sun Aug 19 17:23:10 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4596.  
  4597.     * tm-hp9k320bsd.h (CPP_SPEC): Def __HAVE_68881__ like __HAVE_FPU__.
  4598.  
  4599.     * Makefile.in (USE_ALLOCA): Test was backwards.
  4600.     (USE_HOST_ALLOCA): Likewise.
  4601.  
  4602. Sun Aug 19 09:58:16 1990  Michael Tiemann  (tiemann at cygnus.com)
  4603.  
  4604.     * stmt.c: Fixes from 2.0 for fixup_goto incorporated here.
  4605.  
  4606.     * cplus-decl2.c (write_vtable_entries): Don't test TREE_EXTERNAL
  4607.     of DECL_CONTEXT (FN).  TREE_EXTERNAL is not meaningful for types.
  4608.  
  4609. Fri Aug 17 22:14:09 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4610.  
  4611.     * optabs.c (emit_cmp_insn): Don't abort after floating lib cmp.
  4612.  
  4613. Thu Aug 16 23:16:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4614.  
  4615.     * varasm.c (assemble_variable, assemble_static_space): Don't
  4616.     call data section if -fshared-data.  If this section is needed,
  4617.     it should be entered from elsewhere, and this is believe to be
  4618.     done in all known cases.
  4619.     (output_constant_pool): Add support for ASM_OUTPUT_SPECIAL_POOL_ENTRY
  4620.     which writes certain constant pool entries specially; used for TOC
  4621.     on RS/6000.
  4622.     (assemble_external_libcall): New function.
  4623.     * expr.c (emit_library_call): Call it.
  4624.  
  4625.     * reorg.c (mark_target_live_regs): Don't follow around infinite loops.
  4626.  
  4627.     * varasm.c (struct rtx_cont): Don't use enums in bit fields if
  4628.     ONLY_INT_FIELDS is defined.
  4629.  
  4630.     * cse.c (remove): Rename to remove_from_table to avoid conflict
  4631.     with `remove' defined in stdio.h.
  4632.  
  4633. Thu Aug 16 22:44:35 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4634.  
  4635.     * stmt.c: fixup_gotos must ignore blocks started after the goto.
  4636.     (block_start_count): New variable, and slot in some structures.
  4637.     (expand_function_start): Initialize it.
  4638.     (expand_start_bindings): Increment it and store in struct nesting.
  4639.     (expand_goto): Store it in struct goto_fixup.
  4640.     (fixup_gotos): Compare fixup's count with block's count.
  4641.     (save_stmt_status, restore_stmt_status): Handle block_start_count.
  4642.     * function.h (struct function): Make slot to save it.
  4643.  
  4644. Thu Aug 16 18:02:03 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4645.  
  4646.     * obtabs.c (expand_fix, expand_float): Support direct conversion
  4647.     between SFmode and fixed modes by library call.
  4648.  
  4649. Wed Aug 15 18:36:28 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4650.  
  4651.     * cccp.c (main): Allow -M to work on .s files by checking for .s
  4652.     and .S suffixes when writing dependencies.
  4653.  
  4654.     * reorg.c (optimize_skip, fill_eager_delay_slots, try_host_target):
  4655.     Don't need to call can_reverse_comparison_p because invert_jump is
  4656.     safe for floating-point; only reverse_condition isn't.
  4657.  
  4658. Wed Aug 15 15:50:36 1990  Michael Tiemann  (tiemann at cygnus.com)
  4659.  
  4660.     * dbxout.c (dbxout_type): Skip past const and volatile qualifiers
  4661.     that might appear in method names.
  4662.  
  4663. Wed Aug 15 15:44:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
  4664.  
  4665.     * c-parse.y (hash, is_reserved_word): Use __inline.
  4666.  
  4667.     * cccp.c (main): Support -dN and -dD.  Support -lint.
  4668.     (dump_macros): Two new alternatives.
  4669.     (handle_directive): Output macro definitions if -dN or -dD.
  4670.     (rescan): Check comments if -lint.
  4671.     (get_lintcmd): New subroutine.
  4672.  
  4673.     * c-decl.c (c_decode_option): Handle -fshort-double.
  4674.     (init_decl_processing): Create double_type_node accordingly.
  4675.  
  4676.     * c-decl.c (c_decode_option): Handle -Wno...
  4677.  
  4678. Tue Aug 14 23:10:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4679.  
  4680.     * explow.c (break_out_memory_refs): Don't break out reference if
  4681.     constant but not legitimate constant for a machine insn.
  4682.     (memory_address): Only put legitimate constants, rather than all
  4683.     constants, into registers if they are used as an address.
  4684.  
  4685. Tue Aug 14 14:34:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4686.  
  4687.     * reorg.c (steal_delay_list): Can't put something in a
  4688.     non-annulled delay slot that can trap.
  4689.  
  4690.     * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Typo testing offset alignment.
  4691.  
  4692.     * cccp.c (do_assert, do_unassert, check_assertion): New functions.
  4693.     (compare_keyword_lists, read_keyword_list, free_keyword_list):
  4694.     New functions.
  4695.     * cexp.y (yylex): Allow `#' as token.
  4696.     Return name and length of symbol.
  4697.     (keywords): New nonterminal.
  4698.     (expr): Recognize # to test an assertion.
  4699.     (U_CHAR, struct arglist): Data types copied from cccp.c.
  4700.     (%union): New alternatives `keywords' and `name'.
  4701.  
  4702. Mon Aug 13 22:26:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4703.  
  4704.     * tm-romp.h (SLOW_BYTE_ACCESS): Set to 0.
  4705.  
  4706.     * expmed.c (store_bit_field, extract_bit_field): Use get_best_mode
  4707.     to select mode to use for accessing memory when bitfield insns don't
  4708.     accept memory.
  4709.  
  4710.     * c-common.c (rewrite_for_merged_ref, make_merged_ref): Deleted.
  4711.     (merge_component_comparisons): Delete from here.
  4712.     * c-tree.h (merge_component_comparisons): No longer global.
  4713.     * c-convert.c (build_binary_op_nodefault): Don't try to merge component
  4714.     references here; now done in fold.
  4715.     * cplus-typeck.c (build_binary_op_nodefault): Likewise.
  4716.     * Makefile.in (fold-const.o): Now includes flags.h.
  4717.     * fold-const.c: Likewise.
  4718.     (STRIP_NOPS): New macro.
  4719.     (decode_field_reference, all_ones_mask): New functions.
  4720.     (merge_component_references): Put rewritten version here.
  4721.     This fixes bugs in the way that comparisons with non-equal
  4722.     constants (!p->a && p->b) are handled and in endianness checking.
  4723.     Also accepts more general comparisons, and, in particular, its
  4724.     own output so more than a pair of operations can be merged.
  4725.     (fold): Call it for TRUTH_{AND*,OR*}_EXPR.
  4726.  
  4727.     * tree.def (BIT_FIELD_REF): New tree code.
  4728.     * expr.c (get_inner_reference): Support BIT_FIELD_REF.
  4729.     If bitfield is a complete mode-sized unit, return that mode; if it
  4730.     is a subset of bits within a mode-sized unit, return VOIDmode.
  4731.     (expand_assignment): Check for BIT_FIELD_REF.
  4732.     Use mode returned from get_inner_reference to see if bit field.
  4733.     (store_constructor): Likewise.
  4734.     (store_field): Don't pass arg BIT_FIELD; use MODE == VOIDmode
  4735.     instead.  All callers changed.
  4736.     (expand_expr, case BIT_FIELD_REF): New case.  Handled same as
  4737.     COMPONENT_REF.
  4738.     Use mode returned from get_inner_reference rather than DECL_BIT_FIELD.
  4739.     (expand_increment): Must stabilize BIT_FIELD_REF.
  4740.     (do_jump, case NOP_EXPR): Check for inner BIT_FIELD_REF and ARRAY_REF.
  4741.     (do_jump, case COMPONENT_REF): Generalize to handle BIT_FIELD_REF
  4742.     and some ARRAY_REFs also.
  4743.     * fold-const.c (operand_equal_p): Handle BIT_FIELD_REF.
  4744.     * tree.c (staticp): Rework to use switch instead of if-then-else.
  4745.     Add support for BIT_FIELD_REF.
  4746.     (stabilize_reference, simple_cst_equal): Support BIT_FIELD_REF.
  4747.  
  4748.     * c-common.c (truthvalue_conversion): Rework to use switch rather
  4749.     than if-then-else.
  4750.     Generate either TRUTH_{OR*|AND*}_EXPR or comparison operations as
  4751.     much as possible.
  4752.     Handle REAL_CST, ADDR_EXPR, ABS_EXPR, FLOAT_EXPR, FFS_EXPR,
  4753.     LROTATE_EXPR, RROTATE_EXPR, BIT_XOR_EXPR, and MINUS_EXPR.
  4754.     Call fold for COND_EXPRs that we make.
  4755.     * c-convert.c (build_unary_op): invert_truthvalue can't return 0,
  4756.     so don't check for it.
  4757.     (invert_truthvalue): Delete from here.
  4758.     (convert_to_integer, build_conditional_expr): Try to fold COND_EXPR.
  4759.     * c-plus-cvt.c (convert_to_integer): Likewise.
  4760.     * cplus-typeck.c (build_conditional_expr): Likewise.
  4761.     (build_unary_op): invert_truthvalue can't return 0.
  4762.     (invert_truthvalue): Delete from here.
  4763.     * fold-const.c (invert_truthvalue): Move to here.
  4764.     Don't invert floating-point test.
  4765.     Look inside conversions.
  4766.     Use recursive call to negate inside logical operations rather than
  4767.     building a TRUTH_NOT_EXPR.
  4768.     Allow only certain TREE_CODEs as operands; abort for the rest.
  4769.     (fold_convert): Accept second argument that is item being
  4770.     converted to ensure that NOPs have been stripped.
  4771.     (operand_equal_p): Return 0 if either operand has side effects.
  4772.     If both integer or real constants, check the values.
  4773.     Do a more thorough test to see if two items are identical;
  4774.     specifically, compare the operands of simple TREE_CODEs.
  4775.     (omit_one_operand, distribute_bit_expr): New functions.
  4776.     (make_bit_field_ref, optimize_bit_field_compare): Likewise.
  4777.     (fold): Remove LOSES; now done explicitly or by calling
  4778.     omit_one_operand.  Some previous uses weren't needed.
  4779.     Try to fold any COND_EXPRs and some COMPOUND_EXPRs we make.
  4780.     Remove pair of NEGATE_EXPRs and BIT_NOT_EXPRs.
  4781.     Convert "- (a - b)" to "b - a" for non-floating-point.
  4782.     ABS_EXPR applied to ABS_EXPR or NEGATE_EXPR is ABS_EXPR of inner arg.
  4783.     Convert "a + (-b)" to "a - b" and "a - (-b)" to "a + b".
  4784.     If adding ANDs with constants that have no bits, in common, try
  4785.     bitwise-or, since we may then be able to distribute the operation,
  4786.     e.g., (a & 7) + (a & 0x70) -> a & 0x77.
  4787.     Add missing last arg to operand_equal_p call.
  4788.     Call distribute_bit_expr for BIT_AND_EXPR and BIT_IOR_EXPR.
  4789.     Exclusive-or with all ones is bit negation.
  4790.     If second arg of BIT_AND_TC_EXPR is constant, convert to BIT_AND_EXPR.
  4791.     Handle TRUTH_NOT_EXPR by calling invert_truthvalue.
  4792.     Call optimize_bit_field_compare for comparisons of bitfields.
  4793.     Handle "a ? 1 : 0" and "a ? 0 : 1" as test or negated test.
  4794.     Simplify "a & 4 ? a & 4 : 0" and "a ? a : 0" to remove conditonal.
  4795.     * stor-layout.c (get_best_mode): New function.
  4796.     * machmode.h: Define it.
  4797.     * tree.c (integer_pow2p): New function.
  4798.     * tree.h: Declare new functions and functions no longer static.
  4799.  
  4800. Mon Aug 13 17:45:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4801.  
  4802.     * config.gcc (sun3-mach): New alternative.
  4803.     * tm-sun3mach.h: New file.
  4804.  
  4805.     * m68k.md (bfextu patterns): Set CC_NOT_NEGATIVE.
  4806.  
  4807. Mon Aug 13 10:14:37 1990  Michael Tiemann  (tiemann at cygnus.com)
  4808.  
  4809.     * cplus-decl2.c (flag_minimal_debug): Now is default is
  4810.     -fflag-minimal-debug.
  4811.  
  4812.     * cplus-tree.c (virtual_member): Return the assoc of a non-virtual
  4813.     basetype that comes from a virtual baseclass.  Changed callers
  4814.     which used to call `value_member' to call virtual_member instead.
  4815.  
  4816. Mon Aug 13 06:54:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4817.  
  4818.     * optabs.c (expand_twoval_binop): Fix typo.
  4819.  
  4820.     * cse.c (lookup_as_function): Don't assume CODE is a unary
  4821.     operation.  It might be a binary op or REG.
  4822.  
  4823. Sun Aug 12 21:42:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4824.  
  4825.     * expr.c (expand_expr, case COND_EXPR): Don't abort if first arg of
  4826.     COND_EXPR isn't a comparison; just suppress the do_store_flag call.
  4827.  
  4828. Sun Aug 12 14:26:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4829.  
  4830.     * tree.h (enum built_in_function): Delete comma after last name.
  4831.     * c-parse.h (enum rid): Likewise.
  4832.     * expr.h (enum optab_methods): Likewise.
  4833.     * stab.h: Add dummy enum name at end.
  4834.  
  4835.     * config.gcc (genix): Set tm_file.
  4836.     * tm-genix.h (ASM_OUTPUT_DOUBLE): New overriding definition.
  4837.  
  4838.     * tree.h (struct tree_type, struct tree_decl): Handle ONLY_INT_FIELDS.
  4839.     * rtl.h (struct rtx_def): Likewise.  That macro goes in xm-*.h.
  4840.  
  4841. Sat Aug 11 16:56:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4842.  
  4843.     * cplus-decl.c (finish_function): Check value of HAVE_return before
  4844.     calling gen_return.
  4845.  
  4846.     * reorg.c (optimize_skip): Don't reject skip when we jump around an
  4847.     insn and merge at the return point.
  4848.  
  4849. Fri Aug 10 17:00:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4850.  
  4851.     * dbxout.c (dbxout_parms, dbxout_reg_parms): Ignore nameless parms.
  4852.     * sdbout.c (sdbout_parms, sdbout_reg_parms): Ignore nameless parms.
  4853.  
  4854. Fri Aug 10 14:14:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4855.  
  4856.     * recog.c (indirect_operand): Modes need not agree if MODE == VOIDmode;
  4857.     remove test from here since it is in memory_operand, which this calls.
  4858.  
  4859. Thu Aug     9 15:19:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4860.  
  4861.     * c-decl.c (store_parm_decls): If function has variable number of args,
  4862.     put a dummy decl at end of parmlist.
  4863.     * c-parse.y (unary_expr): Handle &... with address of dummy decl.
  4864.  
  4865.     * tm-*.h (LEGITIMIZE_ADDRESS): Go to WIN instead of returning.
  4866.  
  4867.     * cccp.c (handle_directive): Add code to support `# DIGIT'
  4868.     but disable it for the time being.
  4869.  
  4870.     * tm-hp9k320.h (CPP_SPEC): Define _HPUX_SOURCE if not ANSI.
  4871.     (CPP_PREDEFINES): Don't define it here.
  4872.     Do define alternatives with __ prepended.
  4873.  
  4874. Wed Aug     8 14:00:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4875.  
  4876.     * out-romp.c: Don't include hard-reg-set; already in insn-output.c.
  4877.      
  4878.     * explow.c: insn-flags.h is needed to see if "probe" insn exists.
  4879.     * Makefile.in (explow.o): Likewise.
  4880.  
  4881. Wed Aug     8 13:35:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4882.  
  4883.     * cccp.c (check_macro_name): Warn if name is `defined'.
  4884.  
  4885.     * tm-sun386i.h (ASM_IDENTIFY_GCC): If profiling, put a NOP after
  4886.     gcc_compiled.
  4887.  
  4888. Tue Aug     7 23:51:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4889.  
  4890.     * toplev.c (main): Handle -W options like -f options.
  4891.     This supports -Wnounused, and such like.
  4892.     (warn_uninitialized): New variable, controls those warnings.
  4893.     Set it for -Wuninitialized, and for -W.
  4894.  
  4895. Tue Aug     7 13:24:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4896.  
  4897.     * genextract.c (walk_rtx): Fix typo in MATCH_PARALLEL case.
  4898.  
  4899.     * explow.c (allocate_dynamic_stack_space): Pass size of allocated stack
  4900.     to gen_probe.
  4901.  
  4902. Tue Aug     7 12:19:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4903.  
  4904.     * pyr.md (extendsfdf2, truncsfdf2, float*, fix*): Use `&'.
  4905.  
  4906. Tue Aug     7 07:13:54 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4907.  
  4908.     * jump.c (find_cross_jump): Include a USE or CLOBBER in cross jump
  4909.     but don't count it against minimum size.
  4910.     Never return when cross-jump hasn't actually been done.
  4911.  
  4912. Mon Aug     6 18:50:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4913.  
  4914.     * varasm.c: Include regs.h.
  4915.     (decode_reg_name): Remove extern for reg_names; it is in regs.h.
  4916.     * Makefile.in (varasm.o): Depends on regs.h.
  4917.  
  4918. Mon Aug     6 12:46:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4919.  
  4920.     * c-decl.c (grokdeclarator): Don't warn if initialized fcn is extern.
  4921.     (start_decl): Don't warn at all for initialized extern.
  4922.  
  4923.     * final.c (final_start_function): Handle PROFILE_BEFORE_PROLOGUE.
  4924.     (profile_function): New subroutine.
  4925.  
  4926.     * tm-i386sco.h: New file.
  4927.     * config.gcc (i386-sco): New alternative.
  4928.  
  4929.     * gcc.c (ENDFILE_SPEC): New macro.
  4930.     (do_spec_1): Handle %E.
  4931.     (link_spec): Use %E.
  4932.  
  4933.     * xm-i386.h (alloca): Define without arg.
  4934.  
  4935.     * Makefile.in (stage*): Use RANLIB_TEST.
  4936.     (LIMITS_H): New variable.
  4937.     (USER_H): Use that.
  4938.     * make-i386sco: New file.
  4939.  
  4940. Sun Aug     5 13:11:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  4941.  
  4942.     * rtl.h: Delete all machine mode defns; include machmode.h instead.
  4943.     * tree.h: Likewise.
  4944.     * machmode.h: New file.
  4945.     * stor-layout.c: No longer include rtl.h.
  4946.     * Makefile.in: (RTL_H, TREE_H): Add machmode.h.
  4947.     (stor-layout.o): No longer depends on RTL_H.
  4948.  
  4949.     * c-common.c  (binary_op_error, shorten_compare): Should no longer
  4950.     have been static when moved here.
  4951.  
  4952. Sun Aug     5 12:57:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  4953.  
  4954.     * stor-layout.c (layout_record, layout_union): Test value of 
  4955.     PCC_BITFIELD_TYPE_MATTERS for being nonzero, if it is defined.
  4956.     * tm-*.h: Define with value 1.
  4957.     * tm-vax.h (PCC_BITFIELD_TYPE_MATTERS): Depends on -mvaxc-alignment.
  4958.  
  4959.     * proto.h: New file.
  4960.     * Makefile.in (USER_H): Add that file.
  4961.  
  4962. Sun Aug     5 00:04:08 1990  Michael Tiemann  (tiemann at cygnus.com)
  4963.  
  4964.     * cplus-decl2.c (grokfield): It is no longer legal to specify
  4965.     the initializer for a static const member in the class
  4966.     declaration.  Dealing with default initializers is basically
  4967.     impossible.
  4968.  
  4969.     * cplus-init.c (build_delete): Don't wrap `addr' in a SAVE_EXPR
  4970.     until it is in fact an address.     This allows us to call
  4971.     destructors on the return values of function calls.
  4972.  
  4973.     * cplus-typeck.c (commontype): Fixed bug in OFFSET_TYPE case which
  4974.     led to infinite recursion (since we did not reduce the types
  4975.     before we recursed).
  4976.  
  4977.     * cplus-lex.c (check_newline): Make `#pragma implementation' more
  4978.     forgiving.
  4979.  
  4980.     * cplus-init.c (expand_aggr_init): Changed Jan 20th change so that
  4981.     we test whether TYPE has a constructor defined, and we do not test
  4982.     at all whether INIT was from a GNU constructor expression or not.
  4983.  
  4984.     * cplus-typeck.c (build_modify_expr_1): Don't return
  4985.     `error_mark_node' unless there really was an error.  If there is
  4986.     no work to do, return `integer_zero_node'.
  4987.  
  4988.     * cplus-class.c (propagate_basetype_offsets): Count the space
  4989.     between baseclasses, not just the space they occupy.
  4990.  
  4991.     * cplus-typeck.c (commontype): Don't drop the exceptions that are
  4992.     raised by functions and methods.
  4993.  
  4994.     * cplus-cvt.c (convert_to_real): Fix if/else level problem in
  4995.     case where EXPR is of aggregate type.
  4996.  
  4997.     * cplus-decl.c (finish_decl): Emit a line-number note to give
  4998.     users a chance to set a breakpoint before the initialization of an
  4999.     object takes place.
  5000.  
  5001.     * cplus-class.c (build_method_call): If the function we get is not
  5002.     directly from the object we have, call `convert_pointer_to' if the
  5003.     object uses multiple inheritance or virtual baseclasses.
  5004.  
  5005.     * cplus-typeck.c (build_binary_op_nodefault): Don't call
  5006.     `convert_to_pointer' with an argument that might be
  5007.     the integer zero.
  5008.  
  5009.     * cplus-method.c (hack_identifier): Look for DECL_REFERENCE_SLOT
  5010.     in RESULT_DECLs as well.
  5011.  
  5012.     * cplus-init.c (build_vec_delete): Don't forget to deallocate the
  5013.     container if requested.     Really use AUTO_DELETE and
  5014.     AUTO_DELETE_VEC with the same interpretation as `build_delete'
  5015.     gives to its AUTO_DELETE parameter.
  5016.  
  5017. Sat Aug     4 22:08:44 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5018.  
  5019.     * jump.c (find_cross_jump): Use prev_nonnone_insn.
  5020.     Don't cross-jump into the middle of a USE-CALL_INSN-CLOBBER
  5021.     block; doing so can confuse reorg.c.
  5022.  
  5023.     * optabs.c (expand_binop, expand_binop, expand_twoval_binop):
  5024.     If predicate doesn't match, ensure that operand is in a pseudo
  5025.     register.  Current code assumes that any register will suffice,
  5026.     but an insn may want to reject certain hard registers.
  5027.     (expand_unop, emit_unop_insn, emit_cmp_insn): Likewise.
  5028.  
  5029. Sat Aug     4 15:29:09 1990  Michael Tiemann  (rms at sugar-bombs.ai.mit.edu)
  5030.  
  5031.     * function.c (assign_parms): For parms passed by reference,
  5032.     make the memory object's mode agree with the parm's original
  5033.     type mode.
  5034.     * calls.c (expand_call): Fixed braino in building argument
  5035.     reference when FUNCTION_ARG_PASS_BY_REFERENCE is defined.
  5036.  
  5037.     * varasm.c (assemble_variable): Hack our way around the problem
  5038.     that static class members look like initialized variables for the
  5039.     purposes of establishing FIRST_GLOBAL_OBJECT_NAME.
  5040.  
  5041.     * cplus-lex.c (reinit_parse_for_method): Give error message for
  5042.     common mistake of forgetting the function body.
  5043.  
  5044.     * cplus-typeck.c (build_component_ref): Make better error message
  5045.     when field is not found.
  5046.  
  5047.     * cplus-class.c (finish_struct): TYPE_GETS_*_INIT_REF comes from
  5048.     members as well.
  5049.  
  5050.     * cplus-typeck.c (c_expand_return): Give warning about returning
  5051.     non-lvalues that come from functional casts.
  5052.  
  5053.     * cplus-search.c (get_base_distance): Changed to follow leftmost
  5054.     path only when PARENT == TYPE_MAIN_VARIANT (PARENT).
  5055.  
  5056.     * cplus-class.c (modify_vtable_entries): Call get_base_distance
  5057.     with 0 path_ptr, since we do not appear to use the path computed.
  5058.  
  5059. Fri Aug     3 07:37:30 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5060.  
  5061.     * final.c (leaf_function_p): Delete line advertently retained
  5062.     after change of July 29.
  5063.  
  5064.     * reorg.c (optimize_skip, try_hoist_target): Don't invert jump
  5065.     unless can_reverse_comparison_p says it is OK.    Use invert_jump
  5066.     to do it.
  5067.     (fill_simple_delay_slots): Another way flow of control can merge is
  5068.     for two insns to jump to the same place; try to get insns from there.
  5069.     (mostly_true_jump): Return 2 for a jump very likely to be true (the
  5070.     branch back to the start of a loop).
  5071.     (fill_slots_from_thread): Accept new arg LIKELY.  If true, see if can
  5072.     put increment in delay slot and undo it after the end of the loop.
  5073.     (fill_eager_delay_slots): Pass new arg to fill_slots_from_thread.
  5074.     If previous insn is conditional jump that also didn't get a delay
  5075.     slot, see if swapping targets helps.
  5076.  
  5077. Fri Aug     3 00:18:35 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5078.  
  5079.     * cccp.c (MAKE_POS): Avoid constant of uncertain signedness.
  5080.  
  5081.     * gnulib2.c (__bb_init_func): Add dummy function to prevent warning.
  5082.  
  5083. Thu Aug     2 17:44:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5084.  
  5085.     * output.h (current_function_return_rtx): Add new variable.
  5086.     * function.h (return_rtx): Likewise.
  5087.     * function.c (push_function_context, pop_function_context): Save
  5088.     and restore current_function_return_rtx.
  5089.     (assign_parms, expand_function_start): Set current_function_return_rtx
  5090.     to what is put in DECL_RTL (DECL_RESULT (current_function_decl)).
  5091.     * reorg.c: No longer uses tree.h.
  5092.     (dbr_schedule): Get result RTL from current_function_return_rtx instead
  5093.     of reading it from current_function_decl.
  5094.     * Makefile.in (reorg.o): No longer depends on TREE_H.
  5095.  
  5096.     * cse.c (remove_invalid_refs): Only invalidate an entry if it 
  5097.     references the actual register, not merely something sharing its
  5098.     quantity.
  5099.     (cse_insn): Don't abort if SRC and SRC_EQUIV map to different
  5100.     hash classes.  Merge them instead.
  5101.  
  5102.     * romp.md (mulsi3): Emit call to lmul$$ as a regular insn
  5103.     rather than a CALL_INSN.
  5104.     (divsi3, modsi3, udivsi3, umodsi3, call_libfcn): Deleted.
  5105.     (divmodsi4, udivmodsi4): New patterns to call ldiv$$ and uldiv$$
  5106.     as a normal insn to allow CSE'ing of MOD with DIV.
  5107.  
  5108. Wed Aug     1 21:56:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5109.  
  5110.     * c-parse.y (yylex): Don't warn about non-decimal unsigned by default
  5111.     if `u' was specified.  Add similar warning for long and long long.
  5112.  
  5113. Tue Jul 31 23:31:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5114.  
  5115.     * tm-encore.h (FUNCTION_PROFILER): Override, putting `.' in label.
  5116.  
  5117.     * xm-vms.h (const): Delete the definition.
  5118.  
  5119. Mon Jul 30 18:33:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5120.  
  5121.     * c-typeck.c (convert_for_assignment): Normally no warning
  5122.     between char * and unsigned char *, etc.
  5123.     (convert_arguments): Include arg number in incomplete type warning.
  5124.  
  5125. Mon Jul 30 07:38:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5126.  
  5127.     * jump.c (invert_jump): Don't do anything with labels if NLABEL 
  5128.     equals JUMP_LABEL.
  5129.     (redirect_jump): Don't try to reference LABEL_NUSES if olabel is
  5130.     zero (meaning this is a return insn).
  5131.     (redirect_exp): Handle case of converting return to jump to
  5132.     label.
  5133.  
  5134.     * dbxout.c (dbxout_parms): Allow parameter at zero offset from
  5135.     AP to be represented as (MEM (REG ...)).
  5136.     * sdbout.c (sdbout_parms): Likewise.
  5137.  
  5138. Sun Jul 29 22:51:00 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5139.  
  5140.     * optabs.c (expand_twoval_binop_convert): Deleted.
  5141.     (expand_twoval_binop): Rework to be handle predicates, modes, and
  5142.     failures in a manner consistent with expand_binop.
  5143.     Move code from expand_twoval_binop_convert inline and rework to
  5144.     no longer hard-wire SImode and to handle failure.
  5145.  
  5146.     * config.gcc: Finish change of July 24th to have make_var_file depend
  5147.     on host machine.
  5148.  
  5149.     * jump.c: Now includes insn-flags.h.
  5150.     (jump_optimize): Try to put a RETURN at the end of the function if
  5151.     control flows through to it.
  5152.     JUMP_LABEL can now be zero for a RETURN or conditional RETURN.
  5153.     Try to convert jump to end of function into (possibly conditional)
  5154.     RETURN.
  5155.     Use next_active_insn instead of next_real_insn; these do the same
  5156.     thing prior to reload, after which USE and CLOBBERs don't matter.
  5157.     redirect_jump may now fail so don't set CHANGED if it does.
  5158.     Delete optimization of jump to RETURN; now subsumed by follow_jumps.
  5159.     Reset INSN_CODE if changing conditional jump to unconditional.
  5160.     (cond_jump_p): Conditional RETURN is conditional jump.
  5161.     (follow_jumps): Change argument name to AFTER_RELOAD.
  5162.     If not after reload, do not chain across a USE or CLOBBER.
  5163.     Recognize RETURN insns.
  5164.     (tension_vector_labels): Likewise.
  5165.     (redirect_jump, redirect_exp): If NLABEL is zero, turn JUMP into a
  5166.     (possibly conditional) RETURN; use validate_change to see if such an
  5167.     insn exists. 
  5168.     Now returns non-zero if succeeds, 0 otherwise.
  5169.     Unconditional RETURN looks like (RETURN), not (SET (PC) (RETURN)).
  5170.     (thread_jumps): Ignore any type of RETURN insn.
  5171.     * Makefile.in (jump.o): Depends on insn-flags.h.
  5172.     * loop.c (strength_reduce): Don't confuse conditional return with
  5173.     jump to top of loop when LOOP_TOP == 0.
  5174.     * final.c (leaf_function_p): No longer static; no longer takes an arg.
  5175.     (final_start_function): Don't pass START to leaf_function_p.
  5176.     * romp.md (return pattern): Convert to a named pattern.
  5177.  
  5178. Sun Jul 29 16:05:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5179.  
  5180.     * tm-vms.h (ASM_OUTPUT_EXTERNAL): Check TREE_READONLY.
  5181.  
  5182.     * xm-vms.h (alloca): Use built-in alloca.
  5183.  
  5184. Sun Jul 29 06:47:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5185.  
  5186.     * reorg.c (fill_slots_from_thread): Restore inadvertantly deleted
  5187.     lines.
  5188.  
  5189. Fri Jul 27 19:53:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5190.  
  5191.     * Makefile.in (reorg.o): Depends on tree.h, basic-block.h, regs.h,
  5192.     and output.h
  5193.  
  5194. Fri Jul 27 16:30:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5195.  
  5196.     * varasm.c (assemble_variable): Handle ASM_OUTPUT_SHARED_COMMON
  5197.     and ASM_OUTPUT_SHARED_LOCAL.
  5198.  
  5199.     * tm-encore.h (SHARED_SECTION_ASM_OP): New macro.
  5200.     (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_LOCAL): New.
  5201.     All this waiting for papers from pabuhr@watmsg.waterloo.edu.
  5202.  
  5203. Fri Jul 27 16:10:02 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5204.  
  5205.     * make-romp (CC): Set up to allow use of hc.
  5206.  
  5207. Fri Jul 27 15:07:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5208.  
  5209.     * combine.c (subst): Handle (ASHIFT 1 x) in (EQ (AND ... y) 0)
  5210.     only if little-endian.
  5211.  
  5212. Thu Jul 26 23:19:15 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5213.  
  5214.     * expmed.c (expand_shift): Consistently call protect_from_queue
  5215.     before doing anything else.
  5216.     Always put operand1 of extzv into a register because it is SImode
  5217.     and we assume that this means a register.
  5218.  
  5219. Thu Jul 26 14:18:11 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5220.  
  5221.     * varasm.c (assemble_variable): Delete dead code.
  5222.     DATA_ALIGNMENT takes tree and current alignment and gives new
  5223.     alignment for a non-automatic variable of that type.
  5224.     Also apply CONSTANT_ALIGNMENT to the initial value; it now takes
  5225.     the constant and old alignment and gives the new alignment.
  5226.     Adjust DECL_ALIGN to the resulting alignment.
  5227.     Use floor_log2 consistently instead of duplicating its function.
  5228.     (get_or_assign_label): Use CONSTANT_ALIGNMENT instead of DATA_ALIGNMENT
  5229.     and pass type instead of decl.
  5230.     * expr.c (get_pointer_alignment): Rework to: distinguish reliably
  5231.     between expressions giving the address and those giving the item being
  5232.     addressed; use the alignment from the type of the object being
  5233.     pointer to; return 0 if the type is not a pointer; and other 
  5234.     miscellaneous changes.
  5235.     (string_constant): Skip CONVERT_EXPR and NON_LVALUE_EXPR as well
  5236.     as NOP_EXPR.
  5237.     (expand_builtin): Allow get_pointer_alignment to fail, in which case
  5238.     we call the actual function.
  5239.     * stmt.c (expand_decl): Set actual alignment obtained into DECL_ALIGN
  5240.     since it may be better aligned than required and get_pointer_alignment
  5241.     can take advantage of this.
  5242.     * tm-gmicro.h, tm-pyr.h, tm.romp-h: Add or replace definitions of
  5243.     CONSTANT_ALIGNMENT to word-align string constants and
  5244.     DATA_ALIGNMENT to word-align character arrarys for builtin memory
  5245.     functions.
  5246.  
  5247.     * fold-const.c (rshift_double): Reset carry after each shift of
  5248.     one bit.
  5249.  
  5250.     * vax.md (ashrsi3): If right shift by constant, emit as ASHIFTRT.
  5251.     (ashrsi3_const): New pattern  to match it.
  5252.     (casel): Delete patterns no longer needed.
  5253.     * cse.c (cse_insn): Remove unneeded part of change of July 23.
  5254.     (fold_rtx): Convert shift with negative constant count to shift in
  5255.     the opposite direction.
  5256.     * combine.c (subst): Likewise.
  5257.  
  5258.     * emit-rtl.c (init_emit_once): Initialize arg_pointer_rtx before
  5259.     struct pointer and static chain values in case they want to use it.
  5260.  
  5261. Thu Jul 26 12:31:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5262.  
  5263.     * final.c (final_scan_insn): Align label table to boundary appropriate
  5264.     for items of its size.
  5265.     (get_attr_length, shorten_branches): Allow for label table alignment.
  5266.  
  5267. Wed Jul 25 15:06:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5268.  
  5269.     * fixincludes: Handle uses of _IO* followed by spaces.
  5270.     Change redirections for cd when testing that directory exists.
  5271.  
  5272.     By Tiemann:
  5273.  
  5274.     * emit-rtl.c (next_cc0_user): Handle insns in which cc0
  5275.     is set and used in the same insn.
  5276.  
  5277.     * final.c (leaf_function_p): Look inside INSNs which contain
  5278.     a delayed-call sequence.
  5279.     (final_start_function): Test `only_leaf_regs_used' before
  5280.     `leaf_function_p', since that is likely to be faster.
  5281.     (final_scan_insns): Normally we don't have NOTICE_UPDATE_CC
  5282.     take action when processing the path of an annulled branch,
  5283.     since that path does not affect the cc's of the fall-through
  5284.     insns at all.  However, we cannot always ignore the effect of
  5285.     the cc's when processing a delayed annulled branch: when the
  5286.     delayed annulled branch follows a label and carries a
  5287.     REG_CC_STATUS note, that note must be processed.
  5288.  
  5289.     * genattr.c (main): Generate #defines for annulled branches
  5290.     which are consistent with documentation.
  5291.  
  5292.     * reorg.c: Finish recent rework by modifying code specific to
  5293.     machines that have annulling branches.
  5294.  
  5295.     * c-common.c (merge_component_comparisons): Previous logic did
  5296.     not handle cases of (A == 1) && (B == 1), (A != 0) && (B != 0),
  5297.     and (A != 1) || (B != 1).  Fixed by expanding the logic out
  5298.     longhand and letting the compiler do the proper cross-jumping.
  5299.  
  5300.     * tm-vms.h (ASM_OUTPUT_EXTERNAL): Use assemble_name.
  5301.  
  5302.     * expr.c (expand_expr): For BIND_EXPR, do the init for all vars.
  5303.  
  5304.     * stupid.c: Include flags.h.
  5305.     * genrecog.c (main): Make insn-recog.c include flags.h.
  5306.  
  5307. Sun Jul 22 12:04:43 1990  Michael Tiemann  (tiemann at cygnus.com)
  5308.  
  5309.     * cplus-except.c (cplus_expand_end_except): If the user gives a
  5310.     default handler, the exception is considered caught in that
  5311.     handler.
  5312.     * cplus-parse.y (except_stmts): Rest of fix went here, in DEFAULT
  5313.     case.
  5314.  
  5315.     * cplus-decl.c (finish_decl): Don't emit cleanups twice.
  5316.  
  5317.     * cplus-class.c (finish_struct_bits): Don't call
  5318.     `fixup_vbase_offsets'.
  5319.     * cplus-tree.c (fixup_vbase_offsets): #if 0 this function.
  5320.  
  5321.     * cplus-cvt.c (build_default_binary_type_conversion): Handle
  5322.     arguments which are REFERENCE_TYPE.
  5323.  
  5324.     * cplus-method.c (prepare_inline): Set DECL_CONTEXT of this
  5325.     function's parameters.
  5326.  
  5327.     * cplus-decl.c (grokfndecl): When adding a new virtual function
  5328.     entry, RAISES may change a second time.
  5329.  
  5330. Thu Jul     5 10:44:39 1990  Michael Tiemann  (tiemann at cygnus.com)
  5331.  
  5332.     * cplus-decl2.c (grokfield): Static consts need not be initialized
  5333.     in the class definition.
  5334.  
  5335. Mon Jul     2 06:12:49 1990  Michael Tiemann  (tiemann at cygnus.com)
  5336.  
  5337.     * cplus-init.c (resolve_offset_ref): If BASETYPE is not a base
  5338.     type for the current class, give error and return.
  5339.  
  5340. Sun Jul     1 00:18:47 1990  Michael Tiemann  (tiemann at cygnus.com)
  5341.  
  5342.     * cplus-decl.c (finish_function): Throw away more code if we have
  5343.     an inline function from the interface.
  5344.  
  5345.     * cplus-class.c (add_virtual_function): Set DECL_VINDEX from the
  5346.     virtual function which comes from the vtable shared by
  5347.     CURRENT_CLASS_TYPE, if possibe.
  5348.  
  5349.     * cplus-typeck.c (build_binary_op): Call `default_conversion'
  5350.     after doing type instantiation.
  5351.  
  5352.     * cplus-init.c (build_new): New 2.0 interpretation: `new int (10)'
  5353.     means allocate an int, and initialize it with 10.
  5354.  
  5355.     * cplus-init.c (emit_base_init): Completion of fix for virtual
  5356.     function table initialization.    @@ BTW, this may now cause extra
  5357.     virtual function table initializations.     They will all be correct,
  5358.     but they may also be redundant.     GCC's optimizer doesn't know how
  5359.     to remove even the simplest such redundancy.
  5360.  
  5361. Sat Jun 30 13:54:30 1990  Michael Tiemann  (tiemann at cygnus.com)
  5362.  
  5363.     * cplus-class.c (finish_base_struct): Store BASETYPE in the
  5364.     VFIELDS chain (in its TREE_TYPE).
  5365.  
  5366. Fri Jun 29 09:26:17 1990  Michael Tiemann  (tiemann at cygnus.com)
  5367.  
  5368.     * cplus-class.c (build_vtable,prepare_fresh_vtable): Stash the
  5369.     type that caused this vtable to be defined in DECL_CONTEXT
  5370.     * cplus-search.c (bfs_unmark_finished_struct): Work around
  5371.     DECL_CONTEXT conflict for vtables.  @@ NOT A SOLUTION.
  5372.  
  5373.     * cplus-lex.c: Extend meaning of `#pragma implementation'
  5374.     to allow files to `implement' types from general headers.
  5375.  
  5376. Tue Jul 24 22:18:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5377.  
  5378.     * reorg.c: Major rework.  Changes includes:
  5379.     (mark_target_live_regs): Scan code to compute which registers are
  5380.     live at particular insns.  Uses tables created by flow, REG_DEAD
  5381.     notes, and registers set before they are used.
  5382.     (emit_delay_sequence): Always write SEQUENCE as INSN.  Many routines
  5383.     changed to reflect this.
  5384.     (fill_simple_delay_slots): Loop for merge point when target of jump
  5385.     comes back to fallthrough code.     Try to get insns from there.
  5386.     (fill_eager_delay_slots): Fallthrough and target case merged into new
  5387.     function fill_slots_from_thread.
  5388.  
  5389.     * tm-romp.h, romp.md, out-romp.c, xm-romp.h, make-romp: New files to
  5390.     support the ROMP microprocessor, used in the IBM PC RT.
  5391.  
  5392.     * recog.c (comparison_operator): New function.
  5393.  
  5394.     * jump.c (jump_optimize): If putting constant into register, see
  5395.     if it is already present in the register.
  5396.  
  5397. Tue Jul 24 15:35:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5398.  
  5399.     * c-typeck.c (build_binary_op_nodefault): Allow compare of any
  5400.     pointer with const void *, etc.
  5401.  
  5402. Tue Jul 24 17:10:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5403.  
  5404.     * expr.c (get_inner_reference): New function.
  5405.     (expand_assignment): Use it to find out about our target.
  5406.     (expand_expr, case COMPONENT_REF): Likewise.
  5407.     (expand_expr, case COND_EXPR): If can do store-flag, convert
  5408.     X ? A+1 : A to A + (X!=0); fold-const made the former from the latter.
  5409.     Only create label when we know we will need it.
  5410.     Simplify unnessarily complex call to safe_from_p.
  5411.     (expand_expr): Make new variable UNSIGNEDP and use it instead
  5412.     of TREE_UNSIGNED (type).  Also, consistently use existing
  5413.     variable TYPE instead of TREE_TYPE (exp) and similarly for MODE.
  5414.  
  5415. Tue Jul 24 13:50:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5416.  
  5417.     * cccp.c (collect_expansion): Error if ## at beg or end.
  5418.  
  5419.     * c-decl.c (grokdeclarator): Error for long, etc. with nonarith type.
  5420.     Error for signed or unsigned with floating type.
  5421.     Error for initialized parm.
  5422.  
  5423.     * config.gcc: Make make_var_file depend on host machine, not target.
  5424.  
  5425. Tue Jul 24 13:40:35 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5426.  
  5427.     * varasm.c (decode_reg_name): Make TABLE static for non-GCC compilers.
  5428.  
  5429.     * c-typeck.c (type_for_size, type_for_mode): Delete from here.
  5430.     (binary_op_error, shorten_compare, truthvalue_conversion): Likewise.
  5431.     * cplus-typeck.c: Delete second copy from here.
  5432.     * c-common: Move above functions to here.
  5433.  
  5434. Tue Jul 24 12:20:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5435.  
  5436.     * cccp.c (path_include): Fix typo in var name.
  5437.  
  5438. Mon Jul 23 17:46:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5439.  
  5440.     * config.gcc: Remove redundant assignment to tm_file for 88000.
  5441.     Fix typo when assigning to make_var_file.
  5442.  
  5443.     * function.c (optimize_bit_field): Fix typo in change_address call.
  5444.  
  5445. Mon Jul 23 16:59:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5446.  
  5447.     * varasm.c (decode_reg_name): Ignore % at beginning of name.
  5448.     Support extra names defined by ADDITIONAL_REGISTER_NAMES.
  5449.     * tm-i386.h (ADDITIONAL_REGISTER_NAMES): Define it.
  5450.  
  5451.     * dbxout.c (dbxout_init): Handle new macros
  5452.     ASM_OUTPUT_MAIN_SOURCE_FILENAME and ASM_OUTPUT_MAIN_SOURCE_DIRECTORY.
  5453.     * sdbout.c (sdbout_filename): Handle ASM_OUTPUT_MAIN_SOURCE_FILENAME.
  5454.  
  5455. Mon Jul 23 16:50:32 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5456.  
  5457.     * tm-vax.h (NOTICE_UPDATE_CC): CALL clobbers CC if inside PARALLEL too.
  5458.  
  5459.     * vax.md (call_value_pop): Fix typo in argument number.
  5460.  
  5461.     * cse.c (cse_insn): Shift's aren't associative if in different
  5462.     directions, even if same rtx_code.
  5463.     Try to fold result of associating the operation in case it is now
  5464.     trivial.
  5465.  
  5466.     * jump.c (mark_modified_reg): New function.
  5467.     (thread_jumps): Look at insns between target of first jump and the
  5468.     second jump.  Mark any registers that they modify and record if they
  5469.     modify memory.
  5470.     Don't go past a CODE_LABEL.
  5471.     If we pass an unconditional jump, follow it.
  5472.     Use prev_nonnote_insn instead of explicit loop.
  5473.     (rtx_equal_for_thread_p): Consult recorded information to see if
  5474.     memory of registers were modified prior to second jump.
  5475.     * Makefile.in (jump.o): Now needs hard-reg-set.h.
  5476.  
  5477. Sat Jul 21 13:58:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5478.  
  5479.     * cccp.c (O_RDONLY): Define it if not defined.
  5480.  
  5481.     * c-decl.c (finish_decl): No error for nonstatic incomplete array.
  5482.  
  5483. Sat Jul 21 08:24:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5484.  
  5485.     * alliant.md (call patterns): Function address must be memory operand.
  5486.     * convex.md, m68k.md, mips.md, ns32k.md, tahoe.md, vax.md: Likewise.
  5487.  
  5488. Thu Jul 19 16:06:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5489.  
  5490.     * cccp.c (path_include): New function.
  5491.     (main): Call that to handle CPATH envvar.
  5492.  
  5493.     * varasm.c (assemble_variable): Error if size exceeds 2**32-1.
  5494.  
  5495.     * emit-rtl.c (init_emit_once): Pass write_symbols to this function
  5496.     (init_emit): Not this one.  All callers changed.
  5497.  
  5498. Tue Jul 17 21:24:08 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5499.  
  5500.     * local-alloc.c (update_equiv_regs): Don't replace a register with
  5501.     an equivalence if the insn making the equivalence has a source
  5502.     different from the equivalent value.
  5503.  
  5504. Tue Jul 17 16:47:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5505.  
  5506.     * expr.c (emit_block_move): Allow movstr* to fail.
  5507.  
  5508. Tue Jul 17 15:19:18 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5509.  
  5510.     * emit-rtl.c (change_address): Don't call memory_address if reload
  5511.     is in progress, not just after it has completed.
  5512.  
  5513. Mon Jul 16 00:34:27 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5514.  
  5515.     * jump.c (can_reverse_comparison_p): New function.
  5516.     (jump_optimize): In if (x) ... else x = 0; reverse comparison
  5517.     if second operand of IF_THEN_ELSE is PC; use new function to
  5518.     validate the reversal.
  5519.     (jump_back_p): Use new function to see if safe to reverse comparison.
  5520.  
  5521. Sun Jul 15 17:03:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5522.  
  5523.     * jump.c (jump_optimize): Bug in last change; reject uncond jump
  5524.     where conditional is expected.
  5525.  
  5526.     * flow.c (mark_used_regs): Handle autoincrement for *p
  5527.     followed by q = p+size (neither one dead).
  5528.  
  5529. Sat Jul 14 22:37:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5530.  
  5531.     * combine.c (subst): Remove (zero_extend (subreg)) around lshiftrt.
  5532.     Remove (and...) from second arg of shift.
  5533.     Remove (and...) from around shift.
  5534.  
  5535. Sat Jul 14 21:35:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5536.  
  5537.     * local-alloc.c (update_equiv_regs): New function.
  5538.     (local_alloc): Call it.
  5539.     (block_alloc): Don't handle REG_EQUIV notes here; now done in
  5540.     update_equiv_reg.
  5541.     
  5542.     * calls.c: Include insn-flags.h.
  5543.     * Makefile.in (calls.o): Likewise.
  5544.  
  5545. Sat Jul 14 13:28:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5546.  
  5547.     * c-decl.c (duplicate_decls): Don't set DECL_FRAME_SIZE for builtins.
  5548.  
  5549.     * vax.md (SImode bit-field patterns): Use nonmemory_operand.
  5550.  
  5551.     * jump.c (jump_optimize):
  5552.     For if (...) x = 1; else x = 0; x must be integer.
  5553.  
  5554.     * gcc.c (default_compilers): Pass -P to cpp.
  5555.  
  5556. Thu Jul 12 23:38:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5557.  
  5558.     * stor-layout.c (layout_record): Handle BITFIELD_NBYTES_LIMITED.
  5559.  
  5560.     * sparc.md (call recognizers): Don't allow address arithmetic.
  5561.  
  5562. Thu Jul 12 21:47:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5563.  
  5564.     * emit-rtl.c (change_address): If reload has completed, don't call
  5565.     memory_address.     Instead, abort if address is not valid.
  5566.  
  5567. Thu Jul 12 20:41:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5568.  
  5569.     * calls.c (emit_call_1): Handle vax, without call and call_value.
  5570.  
  5571. Thu Jul 12 20:39:33 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5572.  
  5573.     * cse.c (merge_equiv_classes): New function, from record_jump_equiv.
  5574.     (record_jump_equiv): Use new function.
  5575.     (gen_lowpart_if_possible): New function, based on gen_lowpart.
  5576.     (cse_insn): In some cases of (set (subreg (FOO) 0) (BAR)), note
  5577.     that (subreg BAR) is an equivalent of FOO.
  5578.     * integrate.c (expand_inline_function): Likewise.
  5579.  
  5580.     * combine.c (subst): Check for constant in merge of shift into
  5581.     ZERO_EXTRACT.
  5582.     (gen_lowpart_for_combine): Look for SIGN_EXTEND or ZERO_EXTEND:
  5583.  
  5584.     * emit-rtl.c (gen_lowpart, gen_highpart): If passed a hard register,
  5585.     return a new rtx for it in the proper mode, rather than a SUBREG.
  5586.  
  5587. Wed Jul 11 17:05:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5588.  
  5589.     * cse.c (cse_insn): If already have a REG_WAS_0 note, don't make
  5590.     another one.
  5591.     Rework some loops on SETs to eliminate duplicate code and clean up
  5592.     a bit.
  5593.  
  5594.     * rtlanal.c (refers_to_regno_p, reg_overlap_mentioned): Allow these
  5595.     to work on pseudos as well as hard registers.
  5596.  
  5597.     * optabs.c (emit_no_conflict_block): Use reg_overlap_mentioned
  5598.     to see if register is mentioned in insn.
  5599.  
  5600. Wed Jul 11 16:56:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5601.  
  5602.     * jump.c (jump_optimize): Don't optimize jumps to store-flags
  5603.     if after register allocation.  And don't do it if memref is used.
  5604.  
  5605. Wed Jul 11 16:12:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5606.  
  5607.     * emit-rtl.c ({next,prev}_nonnote_insn, prev_label, prev_cc0_setter):
  5608.     New functions.
  5609.     ({next,prev}_{real,active}_insn, next_label): Rework to allow
  5610.     argument of zero; return zero in that case.
  5611.     (next_active_insn, prev_active_insn): If reload is not yet complete,
  5612.     do the same thing as next_real_insn and prev_real_insn.
  5613.     (next_cc0_user): Fix some bugs and typos.
  5614.  
  5615.     * rtlanal.c (reg_mentioned_p): Allow searches for labels to work.
  5616.  
  5617. Wed Jul 11 12:25:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5618.  
  5619.     * c-decl.c (duplicate_decls): In prev fix, use TREE_PUBLIC both times.
  5620.  
  5621. Tue Jul 10 22:54:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5622.  
  5623.     * rtl.def (trap): New code.
  5624.  
  5625. Tue Jul 10 17:48:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5626.  
  5627.     * tree.c (integer_zerop, integer_onep, integer_all_onesp): Look inside
  5628.     a NON_LVALUE_EXPR.
  5629.     (real_zerop, real_onep, simple_cst_equal): Likewise.
  5630.  
  5631. Tue Jul 10 17:05:50 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5632.  
  5633.     * c-parse.y, objc-parse.y, cplus-lex.c (yylex):
  5634.     Terminate token_buf after integer.
  5635.  
  5636. Mon Jul     9 15:22:22 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5637.  
  5638.     * c-decl.c (duplicate_decls): Correct test for extern followed by
  5639.     static function declaration.
  5640.  
  5641. Mon Jul     9 14:13:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5642.  
  5643.     * c-decl.c (grokdeclarator): Move warning and error
  5644.     about initializer with extern to the same place.  Do one or the other.
  5645.  
  5646.     * rltanal.c (reg_mentioned_p): Don't look inside a CONST_DOUBLE.
  5647.  
  5648. Sun Jul     8 14:12:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5649.  
  5650.     * toplev.c (pedwarn, pedwarn_with_file_and_line, pedwarn_with_decl):
  5651.     New functions.
  5652.     (flag_pedantic_errors): New variable controls them.
  5653.     * c-decl.c, c-parse.y, c-typeck.c: Use new functions for many warnings.
  5654.     * varasm.c: Likewise.
  5655.     * gcc.c (default_compilers): Pass -pedantic* to cc1, cpp, etc.
  5656.     * cccp.c (pedwarn): New function.  Many calls to `warning' changed.
  5657.  
  5658.     * c-common.c (c_expand_expr_stmt): New function.
  5659.     Error about incomplete type moved here.
  5660.     * expr.c (expand_expr): Error deleted from here.
  5661.     * c-parse.y: Use c_expand_expr_stmt where suitable.
  5662.  
  5663.     * flow.c (propagate_block): Set following_insn_dead on insn after test.
  5664.     (mark_used_regs): Test that var; don't call insn_dead_p here.
  5665.  
  5666. Fri Jul     6 13:05:01 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5667.  
  5668.     * c-typeck.c (build_indirect_ref):
  5669.     No error if result is incomplete array.
  5670.  
  5671.     * expmed.c (store_bit_field, extract_bit_field): New arg TOTAL_SIZE.
  5672.     Don't extract a bigger unit from memory than this.
  5673.     * expr.c: Callers changed.
  5674.     (store_field): New arg TOTAL_SIZE; callers changed.
  5675.  
  5676.     * out-ns32k.c (print_operand_address): Changes from Ian Dall.
  5677.     * xm-ns32k.h: Use built in alloca.
  5678.     * ns32k.md (ashlsi3): Don't forget to return a value.
  5679.     (movsf): Output floating constants only if GAS_SYNTAX.
  5680.     (call, call_value): Support JSR_ALWAYS.
  5681.     Change handling of bsr if GAS_SYNTAX.
  5682.     (bit test patterns): Use g constraint for op1 and rm for op0.
  5683.  
  5684. Thu Jul     5 21:53:10 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5685.  
  5686.     * c-typeck.c (build_c_cast): Don't do implicit arithmetic conversions.
  5687.     * fold-const.c (fold): Don't combine two conversions if one is
  5688.     signed and the other is unsigned.
  5689.     * integrate.c (copy_parm_decls): Finish making last change.
  5690.  
  5691. Thu Jul     5 18:26:03 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5692.  
  5693.     * expr.c (safe_from_p): If EXP is readonly memory, any memory location
  5694.     is safe from it.
  5695.  
  5696. Thu Jul     5 15:05:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5697.  
  5698.     * gnulib2.c (__fixunsdfsi): Change > to >=.
  5699.  
  5700.     * c-decl.c (start_struct, start_enum): Set C_TYPE_BEING_DEFINED.
  5701.     (grokdeclarator): Don't warn of array if elt type being defined.
  5702.  
  5703.     * c-typeck.c (build_conditional_expr): Handle ((void *) 0).
  5704.     Allow 0 versus function pointer.
  5705.  
  5706. Thu Jul     5 08:05:09 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5707.  
  5708.     * cse.c (cse_insn): If machine has post-increment, don't associate
  5709.     PLUS operations if they are both adding the same constant that is
  5710.     a power of two.     Similarly for post-decrement.
  5711.  
  5712. Wed Jul     4 19:04:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5713.  
  5714.     * flow.c (mark_used_regs): Don't scan a comparison if the following
  5715.     insn that uses the cc's is dead.
  5716.  
  5717.     * flow.c (propagate_block): If cc-using insn is dead, so is previous.
  5718.  
  5719.     * expmed.c (emit_store_flag): New function.
  5720.  
  5721. Wed Jul     4 18:45:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5722.  
  5723.     * c-typeck.c (common_type, comptypes, default_conversion):
  5724.     Use TYPE_READONLY in type to indicate const type; use TREE_READONLY
  5725.     in decl to indicate object will never change.
  5726.     (build_unary_op, readonly_warning, build_modify_expr): Likewise.
  5727.     (c_expand_asm_operands): Likewise.
  5728.     * cplus-class.c (finish_struct_bits): Likewise.
  5729.     * cplus-cvt.c (build_type_conversion): Likewise.
  5730.     * cplus-type2.c (readonly_warning_or_error): Likewise.
  5731.     * cplus-typeck.c (default_conversion, build_unary_op): Likewise
  5732.     (build_modify_expr, c_expand_asm_operands): Likewise.
  5733.  
  5734.     * cplus-cvt.c (popclass): When making INDIRECT_REF, don't set
  5735.     TREE_READONLY from TYPE_READONLY.
  5736.  
  5737. Wed Jul     4 15:16:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5738.  
  5739.     * jump.c (jump_optimize): Fix bugs in last change.
  5740.  
  5741. Wed Jul     4 07:52:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5742.  
  5743.     * expr.c (expand_expr, case COMPONENT_REF): Delete extraneous test
  5744.     for structure-value stack slot, which no longer exists.
  5745.  
  5746.     * reload1.c (bad_spill_regs): Should be static.
  5747.  
  5748.     * combine.c (subst, gen_lowpart_for_combine): Propagate
  5749.     RTX_UNCHANGING_P when making a new MEM.
  5750.     * c-typeck.c, cplus-typeck.c (build_indirect_ref): ANSI says that
  5751.     de-reference of pointer-to-const is not readonly so don't set
  5752.     RTX_UNCHANGING_P.
  5753.     * explow.c (validize_mem): Use change_address so flags get copied
  5754.     to new MEM.
  5755.     * expr.c (convert_move, block_block_{to,from}_reg, emit_move_insn):
  5756.     Likewise.
  5757.     (do_tablejump): Set RTX_UNCHANGING_P in MEM accessing address table.
  5758.     * function.c (optimize_bit_field, instantiate_virtual_regs_1):
  5759.     Preserve flags when making new MEM.
  5760.     * loop.c (invariant_p): Memory references to an invariant address
  5761.     are invariant if RTX_UNCHANGING_P is set.
  5762.     * recog.c (adj_offsettable_operand): Propagate RTX_UNCHANGING_P
  5763.     when making new MEM.
  5764.     * reload.c (find_reloads_toplev): Likewise.
  5765.     * reload1.c (alter_reg): Stack slot is readonly if pseudo was.
  5766.     (eliminate_regs): Propagate RTX_UNCHANING_P in new MEM.
  5767.     * varasm.c (force_const_double_mem): Set RTX_UNCHANGING_P in new MEM.
  5768.  
  5769. Tue Jul     3 21:50:58 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5770.  
  5771.     * expmed.c (expand_and): New function.
  5772.  
  5773.     * stmt.c (expand_expr_stmt): 
  5774.     If value is volatile, fetch it and then ignore it.
  5775.  
  5776.     * expr.c (expand_expr): Error if variable type is incomplete.
  5777.  
  5778.     * c-decl.c (grokdeclarator): Don't warn of incomplete array in typedef.
  5779.  
  5780. Tue Jul     3 18:03:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5781.  
  5782.     * fold-const.c (fold): Convert "(1 << foo) & bar" to "(bar >> foo) & 1"
  5783.     In "(a & 1) != 0", can convert to simply "a & 1".
  5784.     * combine.c (subst): Convert branch on sign bit to signed comparison
  5785.     with zero (possibly adding a SUBREG).
  5786.     Convert ZERO_EXTRACT of the low-order bit of a right shift into a
  5787.     ZERO_EXTRACT of the proper bit.
  5788.  
  5789. Mon Jul     2 12:07:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5790.  
  5791.     * jump.c (jump_optimize): Convert conditionals for storing one
  5792.     value into a store-flags insn.
  5793.  
  5794.     * vax.md (call_pop, call_value_pop): New names for call patterns.
  5795.     Include the popping explicitly in the rtl. 
  5796.  
  5797.     * jump.c (jump_optimize): Delete case for condjump followed
  5798.     by unconditional to same label; was special case of another case.
  5799.     Switch back to next_active_insn or prev_active_insn in a few cases.
  5800.  
  5801.     * function.c (init_function_start): Initialize
  5802.     frame_pointer_needed to zero.
  5803.  
  5804.     * i386.md (tstsf): Clobber reg 0 in SImode.
  5805.  
  5806. Sun Jul     1 14:31:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5807.  
  5808.     * jump.c: Use next_real_insn instead of next_active_insn.
  5809.     Likewise for prev_active_insn.    USE insns make a difference!
  5810.  
  5811.     * function.c (assign_stack_temp): Use largest alignment if BLKmode.
  5812.  
  5813.     * stddef.h: Check __SIZE_T also.
  5814.  
  5815.     * toplev.c: Include types.h first.
  5816.  
  5817.     * i386.md (trunc*2): Don't allow moving symbolic constant to memory.
  5818.     Use wider move only for symbolic constant.
  5819.  
  5820.     * tm-convex.h (LINK_SPEC): Posix link flags.
  5821.     * tm-convex.h (STARTFILE_SPEC): Posix start files.
  5822.     * tm-convex[12].h (CPP_SPEC): Posix defines.
  5823.     * tm-convex[12].h (LIB_SPEC): Posix libraries.
  5824.     * tm-conv[12]os7.h: New files.
  5825.     * config.gcc: use tm-conv*os7 if /usr/include/stdlib.h isn't there.
  5826.  
  5827.     * xm-convex.h (S_IFMT, S_IFREG): make visible if hidden for posix.
  5828.     * xm-convex.h (_PROTO): define to keep 8.0 includes from screwing up.
  5829.  
  5830.     * tm-convex.h (ASM_OUTPUT_{FLOAT,DOUBLE}, PRINT_OPERAND):
  5831.       use %e instead of %#g, which is broken or non-posix.
  5832.  
  5833.     * tm-convex.h (current_section_is_text): make extern.
  5834.     * out-convex.c (current_section_is_text): define here.
  5835.     * tm-convex.h (OVERRIDE_OPTIONS), out-convex.c (override_options):
  5836.       useless; remove.
  5837.     * tm-convex.h (CPP_PREDEFINES): remove parsec, long gone from
  5838.       system includes.
  5839.  
  5840. Sat Jun 30 14:01:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5841.  
  5842.     * c-decl.c (pending_xref_error): Fix typo in arg order.
  5843.  
  5844.     * cccp.c (do_include): Mention non-ex system headers for -M.
  5845.     Guess the directory.
  5846.     (check_macro_name): Should not be static.
  5847.  
  5848.     * rtl.def (inline_header): Add a vector at the end.
  5849.     * rtl.h (ORIGINAL_ARG_VECTOR): New macro.
  5850.     (RTVEC_ELT): New macro.
  5851.     * emit-rtl.c (gen_inline_header_rtx): New argument for that vector.
  5852.     * integrate.c (save_for_inline): Copy arg rtls if nec, then make
  5853.     an arg vector to put in the header.
  5854.     (expand_inline_function): Look in that vector for the rtl.
  5855.     (copy_parm_decls): Likewise.
  5856.  
  5857.     * c-decl.c (duplicate_decls): Warn if function declared external
  5858.     and later static.
  5859.  
  5860. Fri Jun 29 13:29:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5861.  
  5862.     * cccp.c (handle_directive): Supply missing *.
  5863.  
  5864. Thu Jun 28 21:39:43 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5865.  
  5866.     * m68k.md (muldf3 for 68881): Generate fscale if appropriate.
  5867.     * out-m68k.c (floating_exact_log2): New function.
  5868.  
  5869. Wed Jun 27 17:19:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5870.  
  5871.     * c-decl.c (finish_struct): New handling of zero-width bit fields.
  5872.     Store appropriate data in them like other bit fields.
  5873.     Don't delete them until after layout.
  5874.     Don't mess with alignment of following field; set its own.
  5875.     If PCC_BITFIELD_TYPE_MATTERS, get alignment from type.
  5876.     * stor-layout.c (layout_record): For zero-width field, if
  5877.     PCC_BITFIELD_TYPE_MATTERS, alignment does not affect that of structure.
  5878.     (layout_decl): Don't abort for zero-width if no name.
  5879.  
  5880.     * function.c (expand_function_start):
  5881.     Output ...FUNCTION_BEG note here, after assign_parms.
  5882.     (init_function_start): Not here.
  5883.  
  5884.     * sdbout.c (sdbout_record_type_name): Conditionalize for 
  5885.     SDB_ALLOW_FORWARD_REFERENCES.  Don't use typedef names, just tags.
  5886.     (sdbout_begin_block): Likewise.
  5887.     (plain_type_1): Likewise.  Also move code to output structure size.
  5888.     (sdbout_symbol): Output the type if not yet output.
  5889.     Don't output top-level initialized variables yet.
  5890.     Avoid crash if variable never got any rtl.
  5891.     Add conditional for SDB_AUTO_NORMALIZE_OFFSET.
  5892.     (sdbout_toplevel_data, sdbout_queue_anonymous_type): 
  5893.     (sdbout_dequeue_anonymous_type): New functions.
  5894.     (sdbout_tags): Reverse the list first.
  5895.     Output enums before other things.
  5896.     (sdbout_reg_parm): Fake a name if necessary.  Use C_REGPARM.
  5897.     * toplev.c (compile_file): Call sdbout_toplevel_data.
  5898.  
  5899.     * c-typeck.c (convert_for_assignment): Disable warnings for pointers
  5900.     to const and volatile functions.
  5901.  
  5902.     * expr.c (expand_expr): Mark variable as used.
  5903.  
  5904. Tue Jun 26 17:05:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5905.  
  5906.     * tm-sparc.h (LINK_SPEC): Delete spurious `-'.
  5907.  
  5908.     * tm-sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Handle minus zero.
  5909.     (ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
  5910.  
  5911.     * stor-layout.c (layout_type): Check TYPE_NO_FORCE_BLK in union fields.
  5912.  
  5913. Tue Jun 26 01:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
  5914.  
  5915.     * tree.c (dump_tree_statistics): Dummy function.  To be filled in
  5916.     later when we decide what tree statistics should be measured.
  5917.     (build): Now ok to take arguments of length 1.    `build1' cannot be
  5918.     used to allocate 's' tree nodes whcih might have length 1.
  5919.  
  5920.     * All GNU C++ files updated to 1.37.2 (alpha 2).  NOTE: cplus-decl.c
  5921.     needs to be fixed to not us RTL.  I'm leaving this file in its
  5922.     current state so that the GNU C++ compiler at least compiles.
  5923.  
  5924.     * All SPARC files: modified to use registers %f30 and %f31 as
  5925.     temporaries for holding floating-point zero.  Used to use %f0 and
  5926.     %f1, which made it impossible to compare function return values with
  5927.     zero.
  5928.  
  5929. Mon Jun 25 16:54:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5930.  
  5931.     * function.c (init_function_start): New args give file/line for first note.
  5932.     * c-decl.c (store_parm_decls): Pass them.
  5933.     * integrate.c (output_inline_function): Pass dummies for them.
  5934.     * final.c (final_start_function): For sdb, don't output a line number, 
  5935.     just set last_linenum.
  5936.  
  5937.     * c-parse.y (hash, is_reserved_word): New keyword __label__.
  5938.  
  5939.     * stddef.h: Check _T_SIZE as well as _SIZE_T.
  5940.  
  5941. Sun Jun 24 16:09:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5942.  
  5943.     * expr.c (expand_expr): Do preserve_temp_slots for TARGET_EXPR.
  5944.  
  5945. Sat Jun 23 09:52:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5946.  
  5947.     * genpeep.c (gen_peephole): Ignore USE and CLOBBER insn as well as
  5948.     NOTE when matching peephole.
  5949.  
  5950. Fri Jun 22 17:40:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5951.  
  5952.     * c-typeck.c (process_init_constructor): Set up TREE_PURPOSE
  5953.     in record constructor elements.
  5954.  
  5955.     * cexp.y (exp1): If pedantic, warn about commas.
  5956.     (tokentab2): Add entries for ++ and --.
  5957.     (yylex): Error if those are used.
  5958.  
  5959.     * c-decl.c (lookup_tag): For wrong kind of type, just set flag.
  5960.     (shadow_tag): Clear the flag.
  5961.     (pending_xref_error): Print the error message here if flag set.
  5962.     * c-parse.y (setspecs): Call that.
  5963.  
  5964.     * calls.c (emit_call_1): Use call_pop and call_value_pop insns
  5965.     to record when the called function pops its args.
  5966.  
  5967. Fri Jun 22 16:43:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5968.  
  5969.     * local-alloc.c (wipe_dead_reg): Remove REG_DEAD note for unset reg.
  5970.  
  5971.     * tm-sparc.h: Replace FIX_FRAME_POINTER_ADDRESS with
  5972.     INITIAL_FRAME_POINTER_OFFSET.
  5973.  
  5974.     * tm-vax.h (RTX_COSTS): Show shifts are relatively expensive.
  5975.  
  5976. Fri Jun 22 15:05:24 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  5977.  
  5978.     * Makefile.in (GEN): New variable.
  5979.     (P): New variable.
  5980.     (cc1, cc1plus, cc1obj): Use $(P).
  5981.  
  5982.     * cccp.c (check_macro_name): New subroutine taken from do_define.
  5983.     (do_define, do_undef): Use this.
  5984.     (do_undef): Warn if junk follows name.
  5985.     (handle_directive): Always ignore empty directive.
  5986.     Warn if \f or \v in directive.    Error for malformed directive name.
  5987.  
  5988.     * tree.h (BUILT_IN_NEXT_ARG): Define it.
  5989.     * c-decl.c (init_decl_processing): Declare __builtin_next_arg.
  5990.     * expr.h (current_function_arg_offset_rtx): Declare it.
  5991.     * function.c (assign_parms): Set that variable at end.
  5992.     * expr.c (expand_builtin): Implement __builtin_next_arg.
  5993.     * stdarg.h (va_start): Use __builtin_next_arg.
  5994.  
  5995.     * c-decl.c (grokdeclarator): Check for TRADITIONAL_RETURN_FLOAT.
  5996.  
  5997. Fri Jun 22 07:07:53 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  5998.  
  5999.     * final.c (final_scan_insn): Put label for jump table in same section
  6000.     (read-only data) as jump table.
  6001.  
  6002.     * loop.c: Allow tm.h to define ..._BENEFIT and COPY_PENALTY.
  6003.  
  6004. Wed Jun 20 13:03:53 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6005.  
  6006.     * tm-apollo68.h (FUNCTION_ARG_PADDING): Never pad.
  6007.     (STACK_BOUNDARY): Make it 32.
  6008.     (CPP_SPEC): Add spaces.     Define _APOLLO_SOURCE if not -ansi.
  6009.  
  6010.     * c-common.c (check_case_value): New function.
  6011.     * c-parse.y (stmt, when parsing case): Use that.
  6012.     Add new rule for case range.
  6013.  
  6014.     * reload1.c (reload_inheritance_insn): New variable.
  6015.     (reg_reloaded_insn): New variable.
  6016.     (choose_reload_regs): Update those variables.
  6017.     (emit_reload_insns): Use them to remove deaths from insns
  6018.     that used input reloads.
  6019.     (reload_as_needed): Clear reg_reloaded_insn when necessary.
  6020.  
  6021.     * m68k.md (ashlsi3, lshlsi3): Use add to self to shift one bit.
  6022.  
  6023.     * dbxout.c (STAB_CODE_TYPE): New macro defined as type for stab codes.
  6024.     Use in place of enum __stab_debug_code.
  6025.  
  6026. Tue Jun 19 22:56:40 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6027.  
  6028.     * expr.c (expand_increment): For preincrement, don't load value twice:
  6029.     use TEMP as input to addition.
  6030.  
  6031. Tue Jun 19 06:53:13 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6032.  
  6033.     * explow.c (adjust_stack, anti_adjust_stack): Use expand_binop instead
  6034.     of gen_{add,sub}2_insn since the latter will abort if the constant is
  6035.     out of range for the machine.
  6036.  
  6037. Tue Jun 19 00:35:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6038.  
  6039.     * local-alloc.c (post_mark_life): Don't decrement DEATH
  6040.     if it equals BIRTH.  Don't ever increment DEATH.
  6041.  
  6042.     * varasm.c (output_constructor): Discard non_lvalue_expr, not nop_expr.
  6043.     Handle missing values.    Use field in the tree_list, if any.
  6044.     (output_addressed_constants): Don't die if value is missing.
  6045.     * c-typeck.c (process_init_constructor): Handle index and field specs.
  6046.     * c-parse.y (initlist): Parse them.
  6047.  
  6048. Mon Jun 18 15:58:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6049.  
  6050.     * c-decl.c, cplus-decl.c (duplicate_decls):
  6051.     Types don't "match" if one is error.
  6052.  
  6053.     * c-parse.y (label_decl): Use new keyword __label__, not colon.
  6054.  
  6055.     * c-parse.gperf (__label__): New keyword.
  6056.  
  6057.     * mips.md (probe): Make a single insn, just a memref.
  6058.  
  6059. Mon Jun 18 14:27:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6060.  
  6061.     * loop.c (loop_optimize): Set max_luid to last luid + 1, as documented.
  6062.  
  6063.     * local-alloc.c (qty_clobber): New variable.
  6064.     (local_alloc): Allocate and initialize it.
  6065.     (reg_is_set): Set qty_clobber for a clobber of a pseudo used only
  6066.     in this insn.
  6067.     (find_free_reg): Pass qty_clobber to post_mark_life.
  6068.     (post_mark_life): If CLOBBER if non-zero, register isn't live after
  6069.     its death insn.
  6070.  
  6071.     * integrate.c (expand_inline_function): Don't call try_constants on
  6072.     an insn that sets CC0 until we have processed the next insn.  Then
  6073.     call it on both.  This is because the recognizer for these insns
  6074.     may want to look at the user of CC0.
  6075.  
  6076. Mon Jun 18 13:25:59 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6077.  
  6078.     * mips.md (ashlqi3, ashlhi3, one_cmplqi2, one_cmplhi2): Deleted.
  6079.     (ashlsi3, ashrsi3, lshrsi3, neg*, one_cmplsi2): Simplified.
  6080.     Don't output comments.    Use more specific predicates.
  6081.  
  6082.     * mips.md (movsf, movdf): Use L, M codes to avoid #ifdef's.
  6083.     Also simplify and don't output comments.
  6084.     (anonymous patterns for those insns): Deleted.
  6085.     (loading floating constant): New patterns added.
  6086.     (move qi to si pattern): Deleted; ridiculous.
  6087.     (movdi, movsi, movhi, movqi): No need to check for moving reg to self.
  6088.  
  6089.     * mips.md (nop): Use .set noreorder to placate assembler.
  6090.  
  6091. Sun Jun 17 20:01:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6092.  
  6093.     * gcc.c (set_spec): Don't use `name' for both old spec and name of
  6094.     spec.  Use new var old_spec for the former use.
  6095.     Don't use (char *) 0 for null spec; use a null string instead.
  6096.  
  6097.     * jump.c (jump_optimize): Don't special-case deleting an ADDR_DIFF_VEC.
  6098.     Merge code to detect trivial ADDR_VEC and ADDR_DIFF_VEC.
  6099.     (mark_jump_label): Don't count the use of a vector table label in 
  6100.     ADDR_DIFF_VEC.
  6101.     (delete_insn): Can now handle ADDR_DIFF_VEC.
  6102.     (delete_labelref_insn): New function.
  6103.     (redirect_tablejump): Call new function to delete insn that references
  6104.     the jump table.
  6105.  
  6106. Sun Jun 17 01:19:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6107.  
  6108.     * genemit.c (gen_expand): Don't generate `operands' if size is 0.
  6109.  
  6110.     * tm-i860.h (GO_IF_LEGITIMATE_ADDRESS): Displacement must be multiple
  6111.     of the alignment of the operand.
  6112.  
  6113.     * i860.md (signed bit field recognizers): Don't shift by >31 bits.
  6114.  
  6115.     * out-i860.c (output_delayed_branch): Pass register properly to
  6116.     load_opcode.
  6117.  
  6118.     * mips.md (general/fp reg move patterns): Use codes L, M, D.
  6119.     (movdi): Likewise.  And don't output useless comments.
  6120.     Use the assembler temp reg for non-offsettable address.
  6121.     (movsi, movhi, movqi): Output nothing for move from reg to itself.
  6122.     Output li to load a constant.  Use `move' instead of `add'.
  6123.     Don't output useless comments.
  6124.     (load-address pattern): Deleted; handled by addsi3 pattern.
  6125.  
  6126.     * mips.md (addsi3, mulsi3): Make both input predicates arith_operand
  6127.     since they are commutative.
  6128.     (andsi3, iorsi3, xorsi3): Likewise.
  6129.  
  6130.     * tm-mips.h (MOST_SIGNIFICANT_WORD, LEAST_SIGNIFICANT_WORD): New.
  6131.  
  6132.     * tm-mips.h (PRINT_OPERAND): New codes D, L, M.
  6133.     * mips.md (anddi3, iordi3, xordi3): Use earlyclobber to stop overlap.
  6134.     Use new print code D.
  6135.  
  6136.     * mips.md (andsi3, iorsi3, xorsi3): Make predicates more specific.
  6137.     (andhi3, ..., andqi3, ...): Patterns deleted.
  6138.     (patterns for nor): New anonymous patterns.
  6139.     * out-mips.c (uns_arith_operand): New function.
  6140.  
  6141.     * mips.md (trunc*, zero_extend*, extend*, fix_trunc*, float*):
  6142.     Use more specific predicates.
  6143.  
  6144.     * mips.md (addhi3, ..., addqi3, ...): Patterns deleted.
  6145.     (addsi3, subsi3, mulsi3, divsi3): Make predicates more specific.
  6146.     Delete useless comments from assembler code.
  6147.     Use more generic op codes rather than special cases such as addiu.
  6148.     (divmodsi4, udivmodsi4, udivsi3, modsi3, umodsi3): New patterns.
  6149.     (abssf2, absdf2): New patterns.
  6150.  
  6151. Sun Jun 17 06:56:10 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6152.  
  6153.     * cse.c (COST, rtx_cost, make_regs_eqv): Indicate that hard registers
  6154.     in fixed_regs are even cheaper than pseudos.
  6155.  
  6156.     * function.c (instantiate_virtual_regs_1): If valid, replace PLUS
  6157.     whose second operand would be zero with its first operand.
  6158.  
  6159. Sun Jun 17 00:17:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6160.  
  6161.     * sdbout.c (sdbout_symbol): Get right regno for var-length object.
  6162.  
  6163.     * combine.c (simplify_set_cc0_and): Strip SUBREGs, but only if
  6164.     they truncate.    Handle ASHIFTRT like LSHIFTRT.
  6165.     (try_combine): Call simplify_set_cc0_and in all those cases.
  6166.     (subst): Handle (zero_extract (subreg (lshift (reg )))).
  6167.  
  6168. Sat Jun 16 23:11:52 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6169.  
  6170.     * tree.c (get_narrower, get_unwidened): Bit field test was backwards.
  6171.  
  6172. Sat Jun 16 19:07:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6173.  
  6174.     * fold-const.c (fold): Fix typo in test for distributing binary
  6175.     operator over conditional and compound expressions.
  6176.  
  6177.     * genoutput.c: Remove vestiges of obsolete and never used
  6178.     INSN_MACHINE_INFO.
  6179.  
  6180.     * rtl.def (MATCH_PARALLEL): Add new RTL code.
  6181.     * genconfig.c (walk_insn_part): Support MATCH_PARALLEL.
  6182.     * genemit.c (max_operand_1): Likewise.
  6183.     (gen_exp): Just write operand for MATCH_PARALLEL.
  6184.     (gen_expand, gen_split): Support MATCH_PARALLEL.
  6185.     * genrecog.c (walk_rtx): Add support for MATCH_PARALLEL.
  6186.     * genoutput.c (scan_operands): Suppport MATCH_PARALLEL
  6187.     like MATCH_OPERATOR.
  6188.     * genpeep.c (match_rtx): Add code to support MATCH_PARALLEL.
  6189.     Don't write unnecessary cast to `rtx'.
  6190.     * genrecog.c (add_to_sequence): Simplify handling of mode.
  6191.     Support MATCH_PARALLEL.
  6192.  
  6193.     * expr.c (move_block_{to,from}_reg): Support load/store multiple.
  6194.     * function.c (instantiate_virtual_regs_1): If can't substitute
  6195.     new pseudo for virtual register, try doing the substitution
  6196.     globally throughout the entire insn.  This lets load/store multiple
  6197.     insns refer to virtual registers in their addresses.
  6198.     
  6199.     * genrecog.c (write_split_tree, write_split_subroutine): Deleted.
  6200.     (break_out_subroutines, write_subroutine, write_tree):    Accept
  6201.     parameters that indicate whether we are making gen_split or gen_recog.
  6202.     (main): Pass new parameters to break_out_subroutines and write_tree.
  6203.  
  6204.     * final.c (final_scan_insn): Process insns that set CC whenever a
  6205.     REG_CC_STATUS note is found; not only JUMP_INSNs can use CC.
  6206.     When scanning REG_CC_STATUS insns, set cc_prev_status from cc_status
  6207.     each time.
  6208.  
  6209.     * recog.c (validate_replace_rtx): New function that tries to 
  6210.     replace all occurrences of an object within an insn and see if the
  6211.     resulting insn is valid.
  6212.  
  6213. Thu Jun 14 06:58:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6214.  
  6215.     * optabs.c (emit_no_conflict_block): Write REG_NO_CONFLICT notes all
  6216.     all insns in the block that modify the output.    Write them on the
  6217.     final insn even if we don't put a REG_EQUAL note there.
  6218.  
  6219.     * stmt.c (expand_return): Only distribute return down a conditional
  6220.     expression if tail recursion is possible in a branch.
  6221.  
  6222.     * expr.c (expand_expr): Remove obsolete reference to when we had
  6223.     a shared structure-value slot.
  6224.  
  6225.     * jump.c (get_label_before, get_label_after, follow_jumps): No longer
  6226.     static.
  6227.     * rtl.h: Define them.
  6228.  
  6229. Mon Jun 11 17:35:40 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6230.  
  6231.     * loop.c (INSN_LUID): Check for INSN_UID above the area that we
  6232.     know about.
  6233.     (loop_optimize): Cannot use INSN_LUID as lhs.
  6234.     (scan_loop): If first jump is to label made by loop, we can't
  6235.     tell if it is in range or not, so reject loop.
  6236.     Reject loop if SCAN_START was an insn previously made by loop since
  6237.     we won't know its luid.
  6238.     Only call loop_reg_used_before if argument has known luid.
  6239.     Mark partial invariant as global if its insn was made by loop.
  6240.     (ignore_some_movables): Don't assume all invariants have luids.
  6241.     (strength_reduce): Use no_labels_between_p instead of
  6242.     labels_in_range_p.
  6243.     Don't look at luid of insns for which one doesn't exist.
  6244.     (valid_initial_value_p): Reject initializations in insns whose
  6245.     luid we don't know.
  6246.  
  6247.     * loop.c (product_cheap_p): Put all our rtl into a separate obstack
  6248.     and free memory from it.  If we use current_obstack, we may free
  6249.     memory allocated by gen_reg_rtx, which must be preserved.
  6250.  
  6251.     * c-common.c (rewrite_for_merged_ref): A non-zero one-bit signed field
  6252.     is -1, not 1.
  6253.     * c-typeck.c, cplus-typeck.c (build_binary_op_nodefault): If can't
  6254.     merge comparisons, don't use result of rewrite_for_merged_ref;
  6255.     comparisons with zero are more efficient.
  6256.  
  6257.     * protoize.c (main): Don't declare as extern.
  6258.  
  6259.     * c-aux-info.c (gen_aux_info_record): Don't declare extern.
  6260.  
  6261.     * genemit (gen_split): Rework to fix numerous bugs and typos.
  6262.  
  6263.     * function.c (assign_parms): Avoid generating (PLUS foo (const_int 0)).
  6264.  
  6265. Wed Jun     6 20:03:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6266.  
  6267.     * gencodes.c (main): Count a code number for DEFINE_SPLIT.
  6268.  
  6269.     * rtlanal.c (note_store): Pass SUBREG of a hard register to function.
  6270.     (reg_overlap_mentioned_p): Handle receiving SUBREG of hard register.
  6271.     * integrate.c (mark_stores): Likewise.
  6272.     * local-alloc.c (reg_is_set, reg_is_born): Likewise.
  6273.     * reload1.c (mark_not_eliminable): Likewise.
  6274.  
  6275.     * loop.c (move_movables): Don't blow up if moving last real insn
  6276.     in function.
  6277.  
  6278. Wed Jun     6 19:44:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6279.  
  6280.     * gcc.c (default_compilers): Pass -traditional before -f*.
  6281.     Delete -gg option.
  6282.  
  6283. Sun Jun     3 22:44:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6284.  
  6285.     * c-decl.c (grokdeclarator): Warn about extern with initializer.
  6286.  
  6287. Sun Jun     3 22:32:19 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6288.  
  6289.     * genrecog.c (main): Don't call write_tree with null if no insns
  6290.     were in file.
  6291.  
  6292. Sat Jun     2 21:49:24 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6293.  
  6294.     * expr.c (expand_expr, cases ABS_EXPR, MAX_EXPR, MIN_EXPR): Use target
  6295.     unless zero or safe_from_p rejects it.
  6296.     (expand_expr, conditional cases): Likewise.
  6297.  
  6298. Sat Jun     2 14:46:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6299.  
  6300.     * c-decl.c (grokdeclarator): Handle const and volatile with parm
  6301.     specified as function type.
  6302.  
  6303. Fri Jun     1 16:13:39 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6304.  
  6305.     * rtl.def (DEFINE_FUNCTION_UNIT): Change specifications so
  6306.     it now is one per operation type, rather than one per
  6307.     function unit.
  6308.     * genattr.c (write_units): Write out new function names and
  6309.     function unit table structure.
  6310.     * genattrtab.c (struct function_unit_op): New structure.
  6311.     (struct function_unit): Updated for new definition of
  6312.     DEFINE_FUNCTION_UNIT.
  6313.     (SIMPLIFY_TEST_EXP): New macro to reduce number of function calls
  6314.     to simplify_test_exp.  Replace all call to the function with
  6315.     uses of the macro.
  6316.     (check_attr_test, make_alternative_compare): Show that EQ_ATTR with
  6317.     attribute of "alternative", MATCH_OPERAND, and comparison cases can't
  6318.     be simplified.
  6319.     (expand_units, gen_unit, write_function_unit_info): Support new
  6320.     meaning of DEFINE_FUNCTION_UNIT.
  6321.     (simplify_test_expr): Rework AND and IOR cases to reduce rescans.
  6322.     Once an expression has been simplified, set RTX_UNCHANGING_P so
  6323.     we won't try simplifying it again.  Don't do this if INSN_CODE == -2.
  6324.     (write_attr_set): Don't make a recursive call if we know that
  6325.     the test we are writing will always be false.  Also clean up a bit.
  6326.     (main): true_rtx and false_rtx don't need to be simplified.
  6327.     Write gen_attr_... routines before special routines.
  6328.  
  6329. Fri Jun     1 14:17:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6330.  
  6331.     * tm-sparc.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE):
  6332.     Round frame size to multiple of STACK_BOUNDARY.
  6333.  
  6334. Fri Jun     1 09:38:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6335.  
  6336.     * optabs.c (emit_no_conflict_block): Place REG_NO_CONFLICT notes on
  6337.     insn that contains REG_EQUAL note instead of insn doing computation.
  6338.  
  6339.     * cplus-decl2.c, cplus-lex.c: Rename gettime to get_run_time.
  6340.     Likewise for my_gettime to my_get_run_time.
  6341.  
  6342.     * Makefile.in (varasm.o, calls.o, explow.o, integrate.o, loop.o):
  6343.     These do not depend on insn-codes.h.
  6344.     * function.c: Explicitly include insn-codes.h to make it clear that it
  6345.     is needed for the values of the CODE_FOR_... macros.
  6346.  
  6347. Thu May 31 12:59:28 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6348.  
  6349.     * gnulib2.c (__trampoline): New function.
  6350.     * Makefile.in (LIB2FUNCS): Compile it.
  6351.     * tm-m68k.h (TRAMPOLINE_ALIGN): Define it.
  6352.     * function.c (trampoline_address): Handle extra alignment.
  6353.     * tm-m68k.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): 
  6354.     Redefine to transfer via __trampoline.
  6355.     (TRANSFER_FROM_TRAMPOLINE): Define it, for gnulib2.c.
  6356.  
  6357.     * fold-const.c (fold): Preserve sign on constant when other terms
  6358.     cancel (after call to split_tree).
  6359.  
  6360. Thu May 31 12:39:51 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6361.  
  6362.     * expr.c (preexpand_calls): Ignore BLOCK to avoid infinite recursion.
  6363.  
  6364.     * function.c (assign_parms): Fix typo getting mode of result.
  6365.  
  6366.     * cse.c (cse_basic_block): Don't go past TO if it is target of
  6367.     followed jump.
  6368.  
  6369. Wed May 30 21:31:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6370.  
  6371.     * c-parse.y (fndef, nested_function, notype_nested_function):
  6372.     Use YYERROR1 instead of YYERROR. 
  6373.     (YYERROR1): New macro.
  6374.     * cplus-parse.y, objc-parse.y: Likewise.
  6375.  
  6376. Tue May 29 21:53:19 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6377.  
  6378.     * optabs.c (expand_float): Don't use hard reg as intermediate.
  6379.  
  6380.     * c-parse.y, objc-parse.y (yylex): Fix typo checking for ERANGE.
  6381.     * cplus-lex.c (yylex): Copy current code for ERANGE from c-parse.y.
  6382.  
  6383.     * toplev.c (get_run_time): Renamed from gettime.
  6384.  
  6385. Mon May 28 15:47:48 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6386.  
  6387.     * expr.c (emit_push_insn): Don't push by pieces if alignment
  6388.     forces use of small pushes that do problematical padding.
  6389.  
  6390.     * tm-sparc.h (SELECT_SECTION): Use TREE_SIDE_EFFECTS.
  6391.     (STACK_POINTER_OFFSET): Now 68; does not include REG_PARM_STACK_SPACE.
  6392.     (REG_PARM_STACK_SPACE): Now takes arg and has value.
  6393.     (ACCUMULATE_OUTGOING_ARGS): Define this.
  6394.     (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, EXIT_IGNORE_STACK): Use
  6395.     current_function_outgoing_args_size, not ..._pretend_...
  6396.     (INITIALIZE_TRAMPOLINE): Use size_int.
  6397.  
  6398.     * varasm.c (make_decl_rtl, make_function_rtl): Run ENCODE_SEGMENT_INFO
  6399.     if it is defined.
  6400.  
  6401.     * tree.def (BIND_EXPR): Add operand, which holds the BLOCK.
  6402.     * expr.c (expand_expr): When BIND_EXPR is seen, flag the BLOCK.
  6403.     * dbxout.c (dbxout_block): Test the flag in the BLOCK.
  6404.     * sdbout.c (sdbout_block): Likewise.
  6405.     * symout.c (symout_function): Likewise.
  6406.     * c-parse.y (stmt expr rule): Corresponding change.
  6407.  
  6408. Sun May 27 20:53:16 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6409.  
  6410.     * caller-save.c (save_call_clobbered_regs): Correctly mark registers
  6411.     live for multi-word pseudos.
  6412.  
  6413. Sat May 26 13:42:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6414.  
  6415.     * sdbout.c (sdb_begin_function_line): Now -1 if not in use.
  6416.     (sdbout_end_function): Set it to -1.
  6417.  
  6418.     * tree.def: Rename EXIT_STMT to EXIT_EXPR and likewise for LOOP_STMT.
  6419.     Also LET_STMT to BIND_EXPR, and GOTO_STMT, LABEL_STMT, RETURN_STMT
  6420.     to ..._EXPR.
  6421.     (struct tree_stmt, struct tree_if_stmt, struct tree_bind_stmt):
  6422.     (struct tree_case_stmt): Types deleted.
  6423.  
  6424.     * tree.c (make_node, copy_node): Treat 's' like 'e' for size of node.
  6425.     In make_node, make BLOCK and BIND_EXPR savable.
  6426.     * expr.c (expand_expr): Rename, and use TREE_OPERAND to get body.
  6427.     * cplus-init.c (build_vec_delete): Likewise, and build appropriately.
  6428.     * print-tree.c (print_node): No special handling for these and IF_STMT.
  6429.     * stmt.c (warn_if_unused_value): Likewise.
  6430.  
  6431.     * tree.def (BLOCK): New tree code for binding blocks.
  6432.     * tree.h (BLOCK_VARS, BLOCK_TYPE_TAGS):
  6433.     (BLOCK_SUBBLOCKS, BLOCK_SUPERCONTEXT): Renamed from STMT_...
  6434.     (STMT_...): Except for those, all deleted.
  6435.     (BLOCK_CONTROLLER): Points to corresponding BIND_EXPR, if any.
  6436.     (BLOCK_CHAIN): New macro.
  6437.     * tree.c (build_block): Renamed from build_let.
  6438.     (decl_type_context, decl_function_context): Corresponding change.
  6439.     * print-tree.c (print_node): Likewise.
  6440.     * c-decl.c, cplus-decl.c (poplevel): Likewise.
  6441.     * integrate.c (copy_decl_tree): Likewise.
  6442.     * function.c (setjmp_protect, uninitialized_vars_warning):
  6443.     (instantiate_decls_1): Likewise.
  6444.     * c-parse.y, cplus-parse.y, objc-parse.y (stmt expr rule): Likewise.
  6445.     * dbxout.c (dbxout_block): Expect only BLOCKs in this tree.
  6446.     Ignore those with controllers that are not marked used.
  6447.     * sdbout.c (sdbout_block): Likewise.
  6448.     * symout.c (symout_function): Likewise.
  6449.  
  6450.     * tree.def: Delete IF_STMT, COMPOUND_STMT, WITH_STMT.
  6451.     * expr.c (expand_expr): Delete handling of IF_STMT.
  6452.     * tree.c (build_if, build_loop, build_case, build_goto): Deleted.
  6453.     (build_expr_stmt, build_asm_stmt, build_return, build_exit): Likewise.
  6454.     (build_compound): Likewise.
  6455.     * cplus-init.c (build_vec_delete): Use COND_EXPR instead of IF_STMT.
  6456.  
  6457. Sat May 26 13:23:12 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6458.  
  6459.     * calls.c (struct arg_data): Add new fields slot_offset and stack_slot.
  6460.     (expand_call): Compute both location of start of stack slot and    the
  6461.     place in the stack slot where the first byte of the argument will be
  6462.     placed.
  6463.     Use stack_slot when loading a BLKmode object into registers.
  6464.     When loading into registers, don't check reg_parm_seen, just look
  6465.     at args[i].reg.
  6466.     (expand_call, store_one_arg): Save and restore stack slot starting
  6467.     from beginning of slot, not begining location where arg is stored.
  6468.     (store_one_arg): After calling emit_push_insn, argument is really
  6469.     at arg->stack_slot instead of arg->stack because if we want to
  6470.     load it into registers, we include any padding.
  6471.  
  6472. Sat May 26 01:37:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6473.  
  6474.     * tree.h (struct tree_type): Rename sep=>minval, sep_unit=>precision.
  6475.  
  6476.     * tree.c (init_obstacks, init_tree_codes): init_tree split in two.
  6477.     * toplev.c (compike_file): Call them.
  6478.  
  6479. Fri May 25 16:40:45 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6480.  
  6481.     * stor-layout.c (layout_record): Nuke excess set of DECL_FIELD_BITPOS.
  6482.     * varasm.c (output_constructor): Bitpos is zero for array (field == 0).
  6483.  
  6484. Fri May 25 00:48:45 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6485.  
  6486.     * final.c (final_scan_insn): Restore inadvertent deletion in change
  6487.     of May 24th.
  6488.  
  6489. Fri May 25 00:13:12 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6490.  
  6491.     * print-tree.c (print_node): Print some missing fields for decls.
  6492.     (print_node_brief): Always print value of integer or real constant.
  6493.  
  6494. Thu May 24 21:28:36 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6495.  
  6496.     * fold-const.c (real_zerop): Function deleted; was redundant.
  6497.  
  6498.     * tree.h (DECL_OFFSET): Macro deleted.
  6499.     (struct tree_decl): Field deleted.
  6500.  
  6501.     * c-typeck.c (build_unary_op): For ADDR_EXPR of COMPONENT_REF,
  6502.     use DECL_FIELD_BITPOS and handle non-constant values.
  6503.     * stor-layout.c (layout_record, layout_union): Likewise.
  6504.     * expr.c (expand_assignment, store_constructor, expand_expr): Likewise.
  6505.     * dbxout.c (dbxout_type): Likewise.
  6506.     * sdbout.c (sdbout_one_type): Likewise.
  6507.     * c-common.c (merge_component_comparisons, make_merged_ref): Likewise.
  6508.     * print-tree.c (print_node): Likewise.
  6509.     * varasm.c (decode_addr_const, output_constructor): Likewise.
  6510.     * objc-actions.c (build_ivar_list_initializer): Likewise.
  6511.     * cplus-typeck.c (build_component_addr): Likewise.
  6512.     And preserve TREE_CONSTANT flag.
  6513.     (unary_complex_lvalue): Likewise.
  6514.     
  6515.     * tree.h (DECL_FUNCTION_CODE): Use the frame_size field, not `offset'.
  6516.     Now meaningful only if function is built in.
  6517.     (DECL_BUILT_IN): New flag macro.
  6518.     * c-decl.c (builtin_function): Set the flag.
  6519.     (pushdecl, duplicate_decls): Use and set it.
  6520.     * c-typeck.c, cplus-typeck.c (build_function_call): Test it.
  6521.     * cplus-decl.c (define_function): Set the flag.
  6522.     (pushdecl, duplicate_decls): Use and set it.
  6523.     * expr.c (expand_expr, preexpand_calls): Test it.
  6524.  
  6525.     * tree.h (DECL_INCOMING_RTL): New macro.
  6526.     * function.c (assign_parms): Set up that field.
  6527.     * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't try to use
  6528.     DECL_OFFSET for a parm; it is not set.    Use DECL_INCOMING_RTL.
  6529.     (PARM_PASSED_IN_MEMORY): New macro.
  6530.     * sdbout.c (sdbout_parms, sdbout_reg_parms): Likewise.
  6531.     (PARM_PASSED_IN_MEMORY): New macro.
  6532.  
  6533.     * cccp.c (macarg): When popping frame, free via free_ptr, not buf.
  6534.  
  6535. Thu May 24 18:04:06 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6536.  
  6537.     * emit-rtl.c (next_cc0_user): New function.
  6538.     * recog.c (next_insn_tests_no_inequality): Use next_cc0_user.
  6539.     * rtl.h: Define next_cc0_user.
  6540.  
  6541.     * cse.c (cse_insn): Make canon_reg calls in separate loop over the
  6542.     SETs to avoid problems when MATCH_DUPs are present in an insn
  6543.     pattern.
  6544.     Don't canon CLOBBER in PARALLEL.  Instead, canon MEM of CLOBBER,
  6545.     both within a PARALLEL and standalone.    Also, call note_mem_clobbered
  6546.     only for MEM.
  6547.  
  6548. Thu May 24 13:08:25 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6549.  
  6550.     * gnulib2.c (__negdi2): Make this inline for other functions.
  6551.  
  6552. Thu May 24 07:15:04 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6553.  
  6554.     * jump.c (no_labels_between_p, prev_real_insn, next_real_insn):
  6555.     (prev_active_insn, next_active_insn, next_label): Delete from here.
  6556.     * rtlanal.c (no_labels_between_p): Put here.
  6557.     * emit-rtl.c (prev_real_insn, next_real_insn, prev_active_insn):
  6558.     (next_active_insn, next_label): Add to here.
  6559.  
  6560.     * c-common.c: Define NULL so NULL_TREE macro will work.
  6561.  
  6562.     * cplus-typeck.c (common_parms): Use oballoc and obfree to
  6563.     avoid external current_obstack.
  6564.  
  6565.     * cse.c (fold_cc0, cse_insn): Use HASH macro instead of call to
  6566.     canon_hash.
  6567.     (cse_insn): When just recording jump insn, show it doesn't set CC0
  6568.     and set it as previous insn.
  6569.  
  6570.     * genoutput.c (gen_split): Fix typo in comment.
  6571.  
  6572.     * reorg.c: No longer need define next_label and next_real_insn as
  6573.     extern.
  6574.  
  6575.     * toplev.c (rest_of_compilation): Use DELAY_SLOTS instead of
  6576.     obsolete HAVE_DELAYED_BRANCH; include insn-attr.h.
  6577.  
  6578.     * final.c (dbr_sequence_length): Now present #ifdef DELAYED_BRANCHES.
  6579.     Eliminate references to obsolete DBR_INSN_SLOTS.
  6580.     (get_attr_length): Support ADJUST_INSN_LENGTH.
  6581.     (get_attr_length, shorten_branches): Handle a SEQUENCE built for an
  6582.     insn with filled delay slots.
  6583.     (final_scan_insn): Avoid unnecessary call to recog_memoized.
  6584.     Use validate_change instead of assuming replacement of CC0 by
  6585.     STORE_FLAG_VALUE or const0_rtx is valid.
  6586.  
  6587. Wed May 23 16:32:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6588.  
  6589.     * out-m68k.c, out-alliant.c (output_btst):
  6590.     Use next_insn_tests_no_inequality, not next_insns_test_...
  6591.     * recog.c (next_insns_test_no_inequality): Function deleted.
  6592.  
  6593. Wed May 23 13:26:57 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6594.  
  6595.     * expmed.c (store_bit_field): Don't bother making a SUBREG when we
  6596.     call ourself recursively; the recursive call will just strip it off.
  6597.  
  6598.     * reorg.c: Include insn-attr.h before testing DELAY_SLOTS.
  6599.     (emit_delay_sequence): Assign new INSN_UID to the SEQUENCE.
  6600.     Chain insns through the sequence via NEXT_INSN and PREV_INSN.
  6601.     * emit-rtl.c (next_insn, prev_insn): Go inside a SEQUENCE to
  6602.     find the next or previous insn.
  6603.     (make_insn_raw): No longer static.
  6604.     * rtl.h: Define make_insn_raw, prev_active_insn, next_active_insn,
  6605.     next_insn, and previous_insn.
  6606.  
  6607.     * genattrtab.c (write_eligible_delay): Always use "*delay_type";
  6608.     annuling only applies to candidate insn, not insn needing slot.
  6609.  
  6610.     * tree.c (init_tree): tree_node_counter doesn't exist any more.
  6611.     (make_node, copy_node, make_tree_vec, build1): No longer set TREE_UID.
  6612.  
  6613. Wed May 23 00:48:57 1990  Michael Tiemann  (tiemann at cygnus.com)
  6614.  
  6615.     * genemit.c, genextract.c: Add support for MATCH_OP_DUP and
  6616.     DEFINE_SPLIT.
  6617.  
  6618.     * cplus-init.c (build_delete): TREE_SIDE_EFFECTS can be
  6619.     nonzero when address to be deleted is a cast of something
  6620.     with side-effects (like a call).
  6621.     (build_vec_delete): Simplify code now that `make_node' does the
  6622.     right thing for _STMT nodes.
  6623.  
  6624. Tue May 22 22:59:43 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6625.  
  6626.     * cse.c (cse_end_basic_block): Don't crash if NEXT_INSN of
  6627.     our branch target is zero.
  6628.     Don't skip scanning first insn after destination label of branch.
  6629.  
  6630.     * expr.c (emit_move_insn): Abort if modes differ.
  6631.     (expand_expr, comparison cases): Use TMODE when convenient.
  6632.     (expand_expr, case COND): When optimizing (C ? 1 : 0), ensure
  6633.     we return a result of the correct mode.
  6634.  
  6635.     * integrate.c (expand_inline_function): Can't call try_constants for
  6636.     JUMP_INSN since we may have changed RETURN to jump.
  6637.  
  6638. Tue May 22 22:40:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6639.  
  6640.     * tree.h (struct tree_common): Delete field `uid'.
  6641.     (TREE_UID): Macro deleted.
  6642.  
  6643.     * c-decl.c (finish_decl): Discard any variable sizes in the decl.
  6644.  
  6645.     * calls.c (expand_call): When making reg_notes for const function,
  6646.     don't test is_const twice, and take account of order of pushing.
  6647.  
  6648. Tue May 22 21:41:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6649.  
  6650.     * reload1.c (eliminate_regs): Ensure we process pseudo that is first
  6651.     operand of PLUS.
  6652.  
  6653.     * expmed.c (store_bit_field): When stripping a SUBREG, adjust the
  6654.     bit position to correspond to the change in modes.
  6655.  
  6656.     * cse.c (rtx_cost): Use COSTS_N_INSNS macro.
  6657.  
  6658.     * cse.c (qty_comparison_*): New vars.
  6659.     (new_basic_block): Initialize qty_comparison_code.
  6660.     (fold_rtx): If we see a comparison, check if we have seen the
  6661.     same comparison before.     If so, we know the result.
  6662.     (record_jump_equiv): Save the comparison being passed in the
  6663.     qty_comparison_* variables for possible later use by fold_rtx.
  6664.     (cse_insn): If the current insn doesn't reference cc0, but the
  6665.     previous insn sets it, delete the previous insn; presumably we
  6666.     used to test it.
  6667.     (cse_basic_block): Allocate new qty_comparison_* vars.
  6668.  
  6669.     * reload1.c (eliminate_regs): Second arg is now mode of enclosing
  6670.     MEM, if any, rather than simply flag indicating inside MEM.
  6671.     Use this mode to determine amount that, e.g., PRE_DEC adjusts by.
  6672.  
  6673.     * reload1.c (reload): Set regs_ever_live for a register that couldn't
  6674.     be eliminated.
  6675.     * final.c (only_leaf_regs_used): Don't do it here.
  6676.  
  6677.     * reorg.c: Eliminate obsolete macros *_REORG_FUNCTION.
  6678.     Entire file is conditional on #ifdef DELAY_SLOTS.
  6679.  
  6680.     * Makefile.in: Use reorg.c instead of dbranch.c.
  6681.  
  6682. Tue May 22 20:40:30 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6683.  
  6684.     * c-decl.c (complete_array_type): Get string elt size in bytes.
  6685.  
  6686. Tue May 22 00:42:07 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6687.  
  6688.     * toplev.c (rest_of_compilation): Turn off VERBOSE arg to thread_jumps.
  6689.  
  6690.     * objc-parse.y, objc-actions.c: Replaces uses of build with build1
  6691.     when being used for 1-operand nodes.
  6692.  
  6693. Mon May 21 23:59:21 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6694.  
  6695.     * global-alloc.c (hard_reg_full_preferences): New variable.
  6696.     (global_alloc): Allocate and initialize it.
  6697.     (prune_preferences): Include in regs_someone_prefers all words
  6698.     of multi-word items that have preferences.  Don't includes registers
  6699.     we also prefer unless they are prefered by an allocno that needs
  6700.     more registers.
  6701.     (set_preference): Set hard_reg_full_preferences also.
  6702.  
  6703. Mon May 21 21:36:29 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6704.  
  6705.     * tree.c (make_node): All ..._STMT nodes have side effects, type void.
  6706.  
  6707. Mon May 21 16:03:23 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6708.  
  6709.     * integrate.c (expand_inline_function): Set insns_at_start before
  6710.     processing parameters since it might be needed during that processing. 
  6711.     Set RTX_INTEGRATED_P in all insns emitted, including labels and
  6712.     barriers.
  6713.     Ensure COPY is set correctly when replacing RETURN and avoid
  6714.     duplicate barriers by calling emit_jump_insn instead of emit_jump.
  6715.     Call note_stores for JUMP_INSNs and CALL_INSNs in case they have
  6716.     side-effects we care about.
  6717.     (copy_rtx_and_substitute): Convert (use (subreg FOO)) to (use FOO).
  6718.     (subst_constants): Don't crash if we see a SUBREG replaced by a
  6719.     REG or vice versa; we have no work to do in that case.
  6720.     Fix typo in case MULT.
  6721.  
  6722.     * recog.c (constrain_operands): Call reg_fits_class_p with original
  6723.     mode of OP, not mode of SUBREG_REG (op) when OP is SUBREG.
  6724.  
  6725. Mon May 21 14:25:14 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6726.  
  6727.     * expmed.c (extract_bit_field): Use class of TMODE for simple reg case.
  6728.  
  6729.     * flags.h (flag_pic): Declare it.
  6730.     * tree.h (mode_for_size): Declare it.
  6731.     * c-tree.h (merge_component_comparisons): Declare it.
  6732.  
  6733. Mon May 21 07:27:12 1990  Michael Tiemann  (tiemann at cygnus.com)
  6734.  
  6735.     * jump.c (thread_jumps): New function to optimize the case where one
  6736.     conditional jump jumps to another testing the same condition.  This
  6737.     function usefully optimzies code both before common subexpression
  6738.     elimination (where it "finds" common subexpressions that cse won't
  6739.     find) and after loop optimization (where the loop optimizer
  6740.     introduces new conditional jumps after rearranging loops).
  6741.     (rtx_equal_for_thread_p): cheaply builds equivalences between
  6742.     register so that jump threading can be effectively run before cse.
  6743.  
  6744.     * emit-rtl.c (init_emit_once): Initialize PIC_OFFSET_TABLE_RTX if
  6745.     PIC_OFFSET_TABLE_REGNUM is defined.
  6746.  
  6747.     * tree.c (build,build1,build_nt): Set TREE_RAISES in addition to
  6748.     TREE_SIDE_EFFECTS.
  6749.     ({temp,saveable,perm}_tree_cons): Call `tree_cons' with arguments
  6750.     instead of calling `make_node' directly.  Eventually, `tree_cons'
  6751.     could be faster than `make_node'.
  6752.     (get_identifier): Use `bcmp' instead of `strcmp', since it's
  6753.     faster.     Also, test the first letter of each string before calling
  6754.     the string comparison function.
  6755.  
  6756.     * toplev.c: Add new flags FLAG_THREAD_JUMPS and FLAG_PIC.  The
  6757.     former gives better common sub-expression elimination while the
  6758.     latter tells the compiler to emit position-independent code.
  6759.     (rest_of_compilation): Thread jumps if requested.
  6760.  
  6761.     * stor-layout.c (layout_{record,union}): For loop bodies meant only
  6762.     for FIELD_DECLs, make sure we have a FIELD_DECL before proceeding.
  6763.  
  6764.     * stmt.c (expand_end_case): Use ADDR_DIFF_VEC if FLAG_PIC is
  6765.     nonzero.
  6766.     @@ NOTE: This would look a lot nicer if CASE_VECTOR_PC_RELATIVE were
  6767.     an expression (like zero/nonzero) instead of soley a #define.
  6768.     (fixup_cleanups): If cleanups emitted no code, don't call
  6769.     `reorder_insns'.
  6770.     (expand_decl_cleanup): Return 0 in case we are not in a block
  6771.     (but instead at top-level).
  6772.  
  6773.     * stack.h: New GNU C++ file.
  6774.  
  6775.     * rtl.c (REG_NOTE_NAMES): Add REG_CC_STATUS and REG_TAIL_CALL.
  6776.     * rtl.h: Ditto.     Also make external declaration of
  6777.     pic_offset_table_rtx.
  6778.     * rtl.def: Add the following new RTL codes: DEFINE_SPLIT,
  6779.     MATCH_OP_DUP, LO_SUM and HIGH.
  6780.  
  6781.     * reorg.c: New file.  Performs instruction reorganizations
  6782.     (primarily branch scheduling) after register allocation.
  6783.  
  6784.     * local-alloc.c (local_alloc): If defined, execute
  6785.     ORDER_REGS_FOR_LOCAL_ALLOC.
  6786.  
  6787.     * genrecog.c (struct decision): Extended to handle DEFINE_SPLITs.
  6788.     (write_tree): Split into three subroutines: `write_tree_1' which
  6789.     does the main work, `write_tree' which does the original job, and
  6790.     `write_split_tree' which builds the recognizer for insn splitting.
  6791.     (add_to_sequence): Handle MATCH_OP_DUP.
  6792.     (main): Bui.Build both insn->insn_code and insn->insn_list
  6793.     recognizers.
  6794.     Also, fixed comment at the top of the file.
  6795.     * genpeep.c (main): Handle DEFINE_SPLIT.
  6796.     (match_rtx): Handle MATCH_OP_DUP.
  6797.     * genoutput.c (main): Handle DEFINE_SPLIT.
  6798.     * genconfig.c (main): Handle DEFINE_SPLIT and MATCH_OP_DUP.
  6799.     * genattrtab.c (main): Handle DEFINE_SPLIT.
  6800.  
  6801.     * fold-const.c (various places): Use `build1' constructor instead of
  6802.     `build' constructor whenever possible.
  6803.  
  6804.     * final.c (final_scan_insn): If we know the status of the condition
  6805.     codes at a particular JUMP_INSN (by dint of the fact that it has a
  6806.     REG_CC_STATUS note), set CC_STATUS to reflect that value.
  6807.     (only_leaf_regs_used): @@ For some reason the frame pointer register
  6808.     is not marked live, even when it is.  If FRAME_POINTER_NEEDED is
  6809.     nonzero, set REGS_EVER_LIVE[FRAME_POINTER_REGNUM] to 1.
  6810.  
  6811.     * expr.c (emit_library_call): Round ARGS_SIZE.CONSTANT up, not down.
  6812.     Use new macro MAX to accomplish this.
  6813.     (safe_from_p): Don't check that EXP is nonzero.     Instead, make
  6814.     caller check (only in one place) that argument to `safe_from_p' is
  6815.     non-zero.
  6816.     (expand_expr): In COND_EXPR case, make sure that the predicate is
  6817.     safe from the two conditions.  Lossage occured in a construct of the
  6818.     form (c = c < 0 ? d : -d).
  6819.  
  6820.     * explow.c (plus_constant): Handle LO_SUM rtl.
  6821.  
  6822.     * c-typeck.c (build_binary_op_nodefault): If optimizing, try merging
  6823.     component refs and/or comparisons into larger operations.
  6824.  
  6825.     * c-common.c (rewrite_for_merged_ref): New function.  Canonicallizes
  6826.     expressions to be recognizable as candidates for merged
  6827.     COMPONENT_REF operations.
  6828.     (make_merged_ref): Builds custom FIELD_DECLs for accessing multiple
  6829.     bits in a byte simultaneously.
  6830.     (merge_component_comparisons): Optimize COMPONENT_REFs in
  6831.     expressions that look like (x.p == y.p && x.q == y.q) or
  6832.     (x.p != y.p || x.q != y.q).  Also optimize (x.p == c1 && x.q == c2),
  6833.     where C1 and C2 are known constants.
  6834.  
  6835.     * c-lang.c (print_lang_statistics): Added new hook function.
  6836.     Currently does nothing for C.
  6837.  
  6838.     * c-convert.c: Use `build1' constructor instead of `build'
  6839.     constructor whenever possible.
  6840.  
  6841.     * cplus-typeck.c (build_binary_op_nodefault): Call this function for
  6842.     better applicability of the merged component ref optimization. 
  6843.     Also, add more recognized cases.
  6844.  
  6845.     * cplus-type2.c (merge_component_comparisons): Code improved, and
  6846.     moved to c-common.c.
  6847.  
  6848.     * cplus-parse.y (operator_name): Recognize `operator,'.
  6849.     (expr): On parsing ',', call `build_x_compound_expr' instead of
  6850.     `build_compound_expr'.
  6851.     (various places): Call `note_decl_list_got_semicolon' instead of
  6852.     `note_decl_got_semicolon' where object in question is a list instead
  6853.     of a type.
  6854.     (component_declarator0): Set CURRENT_DECLSPECS from the bitfield
  6855.     type.
  6856.  
  6857.     * cplus-method.c (hack_wrapper): Rename parameter TYPE to CNAME,
  6858.     since it is a type name we pass in, not a type.
  6859.  
  6860.     * cplus-lex.c (opname_tab): Add `operator,'.
  6861.     (note_decl_list_got_semicolon): Make notation that a list of
  6862.     declarations should be considered as having "gotten a semicolon".
  6863.     (extract_interface_info,interface_strcmp): Commented.
  6864.  
  6865.     * cplus-init.c (build_delete): Rest of changes to reimplement new
  6866.     destructor mechanism.
  6867.     (build_vbase_delete): Fix bug whereby arrays of length 0 and 1 were
  6868.     not being correctly handled.  Also, where elsements were not being
  6869.     deleted.  Use new destrouct calling convention.
  6870.     (various places): Change TYPE_HAS_CONSTRUCTOR to
  6871.     TREE_HAS_CONSTRUCTOR where appropriate.
  6872.  
  6873.     * cplus-expr.c (cplus_expand_expr): Use `emit_block_move' to copy
  6874.     data from RETURN_TARGET to CALL_TARGET in case they do not line up
  6875.     normally.
  6876.  
  6877.     * cplus-decl2.c (finish_file): No need to call `build_vbase_delete'
  6878.     on top-level objects anymore, since destructors now do the right
  6879.     thing.
  6880.  
  6881.     * cplus-decl.c (finish_function): Implement new destructor
  6882.     mechanism: destroy virtual baseclass objects if (in$charge & 2) is
  6883.     nonzero.  Deallocate if (in$charge & 1) is nonzero.
  6884.  
  6885.     * cplus-cvt.c (build_up_reference): Use TREE_HAS_CONSTRUCTOR, not
  6886.     TYPE_HAS_CONSTRUCTOR on non-TYPE tree nodes.
  6887.     (build_up_reference): Only build up references between compatible
  6888.     types.    I.e., don't build a char& to an int object.
  6889.     (convert_to_aggr): Set the TREE_SIDE_EFFECTS bit if the result is a
  6890.     CALL_EXPR.
  6891.  
  6892.     * cplus-class.c (build_vbase_path): Recover from bad parse errors.
  6893.     (build_method_call): Implement new ctor/dtor semantics to allow
  6894.     differentiation between tearing an object down and deallocating it.
  6895.     This also means that ctors and dtors can now aviod going through the
  6896.     virtual function table mechanism as they construct/destruct their
  6897.     objects.
  6898.  
  6899.     * ALL GNU C++ files: Use new macro IDENTIFIER_TYPE_VALUE to lookup
  6900.     type value of an identifier.  Also implement related macros
  6901.     IDENTIFIER_HAS_TYPE_VALUE, and IDENTIFIER_TYPEDECL_VALUE.
  6902.  
  6903.     * cplus-cadillac.c (cadillac_switch_source): Change Prototype
  6904.     declaration to non-prototype declaration.
  6905.     (readable_p): Ditto.
  6906.  
  6907. Sun May 20 20:23:39 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6908.  
  6909.     * c-typeck.c (c_sizeof): For incomplete type, warn and return 0.
  6910.     (c_sizeof): Similar.
  6911.  
  6912. Sun May 20 17:20:48 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6913.  
  6914.     * emit-rtl.c (gen_highpart): Support SUBREG like gen_lowpart.
  6915.  
  6916. Sun May 20 16:59:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  6917.  
  6918.     * c-typeck.c (build_c_cast): Warn about pointer-integer casts 
  6919.     where size differs.
  6920.  
  6921.     * stor-layout.c (layout_type): Multi-word field doesn't force BLKmode.
  6922.  
  6923.     * expmed.c (extract_bit_field): Use mode_for_size for lsb-aligned
  6924.     fields in regs.     No longer knows explicit modes for this.
  6925.  
  6926. Sun May 20 15:12:38 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  6927.  
  6928.     * Makefile.in: (reload1.o): Now depends on output.h.
  6929.  
  6930.     * calls.c (expand_call): No need to set frame_pointer_needed.
  6931.  
  6932.     * emit-rtl.c (gen_rtx): If reference to sp, ap, or fp, use
  6933.     appropriate already-made rtx (e.g., stack_pointer_rtx).
  6934.  
  6935.     * expr.c (expand_builtin, case BUILT_IN_ALLOCA): No need to set
  6936.     frame_pointer_needed.
  6937.  
  6938.     * final.c (final_start_function): No longer round size of frame here.
  6939.     (final_scan_insn): Call constrain_operands with new operand.
  6940.  
  6941.     * flow.c (life_analysis): Change test on whether sp is live or
  6942.     not to depend on FRAME_POINTER_REQUIRED and -fomit-frame-pointer.
  6943.     (This code may not be relevant any more.)
  6944.  
  6945.     * function.c (push_function_context, pop_function_context): No need
  6946.     to save and restore frame_pointer_needed.
  6947.     (assign_{outer_,}stack_local): No need to set frame_pointer_needed.
  6948.     (assign_parms): Likewise.
  6949.     (init_function_start): Don't initialize frame_pointer_needed here.
  6950.  
  6951.     * function.h (frame_pointer_needed): Deleted.
  6952.  
  6953.     * genattrtab.c (write_attr_case): Write call to constrain_operands
  6954.     with new second argument (reload_completed).
  6955.  
  6956.     * global-alloc.c (global_alloc): Don't left fp be allocated if we
  6957.     already know we can't eliminate it.
  6958.     (find_reg): Argument LOSERS is now a HARD_REG_SET instead of an    array.
  6959.     Precompute HARD_REG_SETs before loop over registers to speed up
  6960.     allocation.
  6961.     (retry_global_alloc): Argument FORBIDDEN_REGS is now a HARD_REG_SET.
  6962.     (check_frame_pointer_required): Deleted; no longer needed.
  6963.  
  6964.     * integrate.c (save_for_inline, output_inline_function): No longer
  6965.     need to save and restore frame_pointer_needed.
  6966.  
  6967.     * local-alloc.c (block_alloc): No longer have to worry that having
  6968.     a stack variable might cause a frame pointer to be needed when it
  6969.     might otherwise not be.
  6970.     (find_free_reg): Don't allocate into registers that may be eliminated
  6971.     later even if they are not FIXED_REGS.
  6972.  
  6973.     * output.h: Define reload_completed.
  6974.  
  6975.     * recog.c (constrain_operands): Add new argument, STRICT.  If zero
  6976.     and the constraints could not be matched, try again with a less
  6977.     strict view (i.e., assume that reload will fix those things that
  6978.     it can).  This allows attribute values to be obtained prior to
  6979.     reload.
  6980.     Don't call alter_subreg or assume it has been called.  Instead,
  6981.     look inside SUBREGs.
  6982.  
  6983.     * reload.c (find_reloads_address{,_1}): Handle an address that
  6984.     is a MEM; it may have been produced by register elimination.
  6985.     (find_reloads_address): sp can also be the base register for a
  6986.     stack slot.
  6987.     (form_sum): No longer static.
  6988.  
  6989.     * reload1.c: Rewrite code that performs frame pointer elimination.  Do
  6990.     it during reload to ensure that all addresses and operands remain
  6991.     valid; also generalize to support more than one pair of eliminations.
  6992.     (reg_equiv_stack_slot, bad_spill_regs): New vars.
  6993.     (forbidden_regs): Now a HARD_REG_SET.
  6994.     (struct elim_table): New structure to describe register eliminations.
  6995.     (reload): Start scanning registers after virtual registers.
  6996.     Initialize reg_equiv_stack_slot for each register.  Compute
  6997.     reg_equiv_{mem,address} during register scan only if not eliminating
  6998.     registers.
  6999.     Compute initial default value of frame_pointer_needed.
  7000.     Round frame size to BIGGEST_ALIGNMENT.
  7001.     Create obstack for scratch rtl created by register elmination.
  7002.     Initialize elimination table and spill registers that we know can't
  7003.     be eliminated.
  7004.     On each scan of the insns: Reset all elimination entries to initial
  7005.     offsets, compute reg_equiv_{mem,address}, and see if any potentially
  7006.     eliminable register changed status.
  7007.     Try to eliminate registers from each insn unless we know that none
  7008.     can be eliminated.
  7009.     Don't complete groups for spill registers from registers that
  7010.     shouldn't be used as spill registers.
  7011.     Call reload_as_needed if register eliminations can be done, even if
  7012.     no reloads are needed.
  7013.     (new_spill_reg): Don't allow spilling an eliminable register.
  7014.     Don't set forbidden_regs here.
  7015.     Indicate something changed if a register that wasn't ever used before
  7016.     was made a spill register.
  7017.     (eliminate_frame_pointer, {alter,fix}_frame_pointer_address): Deleted.
  7018.     (delete_dead_insn): New function.
  7019.     (alter_reg): Call it.
  7020.     Always set reg_equiv_stack_slot; if not eliminating registers, also
  7021.     set reg_equiv_{mem,address}.
  7022.     (eliminate_regs, eliminate_regs_in_insn): New functions.
  7023.     (spill_hard_reg): Add new argument, CANT_ELIMINATE.
  7024.     Set bit for register being spilled in forbidden_regs.
  7025.     Use new argument instead of seeing if we are spilling fp.
  7026.     No longer need to have frame pointer just because a reg needs a
  7027.     stack slot.
  7028.     (order_regs_for_reload): Set bad_spill_regs to contain those registers
  7029.     that can't be used for spill registers.
  7030.     Consider any eliminable register as bad to use as a spill register.
  7031.     Rework initialization of potential_reload_regs.
  7032.     (reload_as_needed): Handle register elimination in a similar manner
  7033.     as function reload.
  7034.     (gen_input_reload): When generating a reload for a PLUS, first try to
  7035.     use a three-operand add insn.  If that fails, emit two two-operand
  7036.     insns.
  7037.  
  7038.     * rtl.h (FUNCTION_FLAGS_FRAME_POINTER_NEEDED): Deleted; all others
  7039.     renumbered.
  7040.  
  7041.     * stmt.c (expand_decl): No longer have to set frame_pointer_needed
  7042.     for variable-sized decl.
  7043.  
  7044.     * stupid.c (stupid_find_reg): Don't try to allocate an eliminable
  7045.     register.
  7046.  
  7047.     * tm-vax.h (INITIAL_FRAME_POINTER_OFFSET): Add definition.
  7048.  
  7049.     * recog.c (next_insn_tests_no_inequality): If no next insn, return 0.
  7050.  
  7051.     * print-tree.c (print_node): Set length for TREE_VEC.
  7052.  
  7053.     * calls.c (store_one_arg): Set arg->value to location where argument
  7054.     was placed (either register or stack).
  7055.  
  7056.     * recog.c: Needs flags.h (for flag_pretend_float):
  7057.     * Makefile.in (recog.o): Likewise.
  7058.  
  7059.     * expr.c (convert_move): Add missing RETURN statements.
  7060.  
  7061. Sat May 19 14:26:31 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7062.  
  7063.     * expr.c (expand_expr, case EXIT_STMT): Return rather than falling
  7064.     out of switch statement (and into `binop').
  7065.  
  7066.     * cse.c (cse_insn): Allow conditional branches to be turned into
  7067.     noops when the condition is known false by not calling validate_change.
  7068.  
  7069.     * cse.c (fold_rtx): Add LABEL_REF to list of fast RTL codes.
  7070.  
  7071. Sat May 19 12:41:44 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7072.  
  7073.     * tm-i386gas.h (ASM_OUTPUT_ALIGN): Use log as arg to .align.
  7074.     (ASM_OUTPUT_ALIGN_CODE): Likewise.
  7075.  
  7076.     * gcc.c (default_compilers): For .cc, pass -g* to cc1.
  7077.  
  7078. Sat May 19 06:51:26 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7079.  
  7080.     * tree.c (push_obstacks, pop_obstacks): Put struct obstack_stack
  7081.     in obstack instead of using xmalloc/free.
  7082.     (init_tree): Initialize new obstack for {push,pop}_obstacks.
  7083.  
  7084.     * tree.c (simple_cst_list_equal): No longer static.
  7085.  
  7086. Fri May 18 19:38:01 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7087.  
  7088.     * expr.h (MUST_PASS_IN_STACK): Refine test for case where padding
  7089.     requirement prohibits passing in register.
  7090.  
  7091. Fri May 18 18:14:18 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7092.  
  7093.     * fixincludes: Fix CAT macro in memvar.h.
  7094.  
  7095. Fri May 18 16:13:59 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7096.  
  7097.     * expr.c (do_jump): Don't explicitly copy item being tested from
  7098.     MEM to REG.  If needed, this will be done later.
  7099.  
  7100. Thu May 17 14:33:50 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7101.  
  7102.     * Makefile.in (bootstrap): Pass LANGUAGES to inner makes.
  7103.  
  7104. Thu May 17 13:57:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7105.  
  7106.     * fixincludes: Handle _CTRL like CTRL.
  7107.  
  7108. Wed May 16 21:09:42 1990  Richard Kenner  (kenner at vlsi1.ultra.edu)
  7109.  
  7110.     * fold-const (fold): Two conversions in a row are needed if from an
  7111.     integer type to a pointer type of a different precision.
  7112.  
  7113. Wed May 16 16:09:47 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7114.  
  7115.     * expr.c (expand_expr): Make sure a volatile value is referenced
  7116.     even if value is ignored.
  7117.  
  7118.     * c-typeck.c (truthvalue_conversion): Result COND_EXPR gets type int.
  7119.     (invert_truthvalue): Simplify COND_EXPR.
  7120.  
  7121. Tue May 15 00:25:03 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7122.  
  7123.     * stor-layout.c (layout_record): Do set TYPE_SIZE if size is var.
  7124.  
  7125.     * reload.c (push_reload): If insn is an asm, verify that CLASS
  7126.     is at least possible for the specified mode.
  7127.  
  7128.     * c-decl.c (complete_array_type): Compensate for wide string constant.
  7129.  
  7130.     * final.c (leaf_function_p): Reject everything if profiling.
  7131.  
  7132.     * function.c (optimize_bit_field): Adjust OFFSET if
  7133.     BITS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
  7134.  
  7135.     * expmed.c (store_bit_field, extract_bit_field): Rework the code
  7136.     to adjust XBITPOS for the size within which to count.
  7137.     (extract_bit_field): When converting MEM to REG, don't make SUBREG
  7138.     immediately; fall through and let this happen in the code that
  7139.     handles original registers of the wrong mode.
  7140.  
  7141. Mon May 14 16:01:13 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7142.  
  7143.     * cexp.y (yylex): Ignore carriage return.
  7144.     * cccp.c (initialize_char_syntax): Likewise.
  7145.     (newline_fix, name_newline_fix): Likewise.
  7146.  
  7147.     * c-common.c: New file.
  7148.     (combine_strings): Moved here.    Fix errors for wide string length.
  7149.     * c-parse.y, objc-parse.y, cplus-lex.c: Function deleted here.
  7150.  
  7151. Sun May 13 08:08:41 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7152.  
  7153.     * integrate.c (subst_constants): Fix typo in case 'E'.
  7154.  
  7155. Sat May 12 17:14:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7156.  
  7157.     * combine.c (subst): Don't change -(y-x) to x-y for IEEE floats.
  7158.     Include real.h.
  7159.  
  7160.     * cse.c (fold_rtx): Don't simplify float+0, float-0, float*0
  7161.     if using IEEE floating point.
  7162.     Don't simplify float-self even if not IEEE.
  7163.     * fold-const.c (fold): Likewise.
  7164.  
  7165.     * i386.md (trunc**): Use long move if source is constant.
  7166.     * out-i386.c (PRINT_REG): Handle CODE == 'k'.
  7167.  
  7168.     * fixincludes: Use rm -fr to delete before making link.
  7169.  
  7170.     * optabs.c (init_optabs): Support MULDI3_LIBCALL, etc.
  7171.  
  7172. Sat May 12 17:04:58 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7173.  
  7174.     * cse.c (find_best_addr): Don't modify constant address MEMs; they
  7175.     are shared.
  7176.  
  7177. Sat May 12 15:17:37 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7178.  
  7179.     * ns32k.md (signed bitfield extract): Don't output assembler comment.
  7180.  
  7181. Fri May 11 15:23:55 1990  Richard Kenner  (kenner at vlsi1.ultra.nyu.edu)
  7182.  
  7183.     * Makefile.in: Don't use $(libsubdir) as a target since it involves
  7184.     shell `...` constructs.
  7185.  
  7186.     * genattr.c (fatal, main): Remove relics of old program name.
  7187.     * genattrtab.c: Likewise.
  7188.  
  7189.     * expr.c (expand_expr, case COND_EXPR): Add missing argument to
  7190.     operand_equal_p.
  7191.  
  7192.     * reload.c (form_sum): Handle case where second operand is
  7193.     (plus foo (const_int ...)).
  7194.  
  7195.     * c-typeck.c (c_sizeof{,_nowarn}, c_alignof): Don't blow up for
  7196.     ERROR_MARK.
  7197.     * cplus-typeck.c (c_sizeof{,_nowarn}, c_alignof): Likewise.
  7198.  
  7199.     * cplus-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars,
  7200.     since c defines sizeof (char) as 1.
  7201.  
  7202.     * loop.c (mark_loop_jump): RETURN, SIGN_EXTEND, and ZERO_EXTEND can
  7203.     also occur in JUMP_INSN's.
  7204.  
  7205.     * reload.c (find_reloads, find_reloads_address): Correct errors where
  7206.     an arg to find_reloads is "VOIDmode" instead of "0" and vice versa.
  7207.     (find_reloads_address_1): Likewise.
  7208.  
  7209.     * global-alloc.c (global_alloc): Avoid divide-by-zero for allocnos
  7210.     where all regs have reg_live_length == -2.
  7211.  
  7212. Fri May 11 14:45:06 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7213.  
  7214.     * tm-i860.h (ASM_OUTPUT_CASE_LABEL): Align to multiple of 4.
  7215.  
  7216. Thu May 10 23:43:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
  7217.  
  7218.     * out-i860.c (single_insn_src_p, strict_single_insn_src_p):
  7219.     Correct conditions for needing multiple instructions.
  7220.     (output_delayed_branch): Likewise.
  7221.  
  7222. See file ChangeLog.1.
  7223.  
  7224. Local Variables:
  7225. mode: indented-text
  7226. left-margin: 8
  7227. fill-column: 76
  7228. version-control: never
  7229. End:
  7230.